2016-12-19 5 views
2

Google Bucket (Google Cloud Storage에 있음)에서 일부 파일을 만드는 코드를 작성하고 있습니다. 다음 펄 코드처럼Google 버킷에서 디렉토리 만들기

디렉토리를 만들려면, 하나는, 슬래시로 끝나는 빈 파일을 생성합니다

my $EscapedName = uri_escape($DirName . '/'); 
my $response = $ua->post("https://www.googleapis.com/upload/storage/v1/b/$Bucket/o?uploadType=media&name=$EscapedName", 
          'Content-Type' => 'application/octet-stream', 
          Content => ""); 

내 질문 : 나는 (예 : 파일 (천에 대해 실제로) 일부를 저장하기 위하여려고하고있다 d/x, d/y, d/z)를 버킷에 넣습니다. 이 파일들을 저장하기 전에 d/ 디렉토리를 생성해야합니까?

파일을 채우기 전에 Google Cloud Storage에서 디렉토리를 만드는 데있어 pro 및 counter라는 인수는 무엇입니까?

답변

2

GCS에는 "디렉토리"라는 기본 개념이 없습니다. 나는 "a/b/c/d/e/f"라는 파일을 "a /"또는 "a/b /"라는 파일없이 만들 수 있습니다. Heck, 나는 "a ///////////// b"라는 이름의 객체를 만들 수 있었고, 이것은 완전히 유효한 객체 이름입니다.

즉, 편의를 위해 디렉토리가 존재한다고 가정하는 몇 가지 도구가 있습니다. 명령 줄 도구 gsutil은 "/"로 끝나는 빈 파일이 폴더임을 나타냅니다. 마찬가지로 클라우드 콘솔도이 형식을 인식합니다. 그러나 어느 도구도이를 요구하지 않습니다. "a/b/c/d"라는 개체를 만드는 경우 이러한 개체 틀 개체가 있는지 여부에 관계없이 폴더 "a", "a/b"및 "a/b/c" .

따라서 애플리케이션이 어떤 이유로 든 사용해야하는 경우가 아니면 이러한 디렉토리 객체를 전혀 작성할 필요가 없습니다. 어떤 이유로 든 자리 표시자를 필요로하는 경우이를 사용하십시오. 예를 들어, 응용 프로그램이 파일 시스템을 모델링하고 빈 디렉토리의 존재가 본질적인 의미를 지닌다면, "일종의 빈 디렉토리"마커 파일이 필요할 것입니다.

그러나 존재하지 않을 경우 생성하지 마십시오.