2017-05-09 11 views
0

내 서버에서 버킷으로 파일을 업로드하고 있습니다. foobar. 업로드 된 파일의 경로는 foobar/uploads/avatars/123456789.jpg입니다.파일을 공개적으로 읽을 수 있지만 전체 버킷으로 만들지 마십시오.

사용자가 https://storage.googleapis.com/foobar/uploads/avatars/123456789.jpg과 같은 공개 https 링크를 통해이 파일에 액세스 할 수있게하려고합니다. 링크는 Google 계정에 로그인하지 않고도 액세스 할 수 있어야합니다. I 사용자가 https://storage.googleapis.com/foobar/, https://storage.googleapis.com/foobar/uploads/avatars/ 등의 링크를 사용하여 전체 버킷을 탐색 할 수 있기를 원합니다.

@google-cloud/storage을 사용하여 파일을 업로드하고 있습니다. ACL을 사용하여 어떻게 이러한 설정을 할 수 있습니까? 기존 개체에 대한

답변

2

:

file.makePublic(function(err, apiResponse) {}); 

새로운 객체를 업로드, options.predefinedAcl = 'publicRead'를 지정하는 것과 동일 옵션 public를 사용합니다. 업로드 수행 방식에 따라 createWriteStream 전화 번호를 다음과 같이 변경할 수 있습니다.

file.createWriteStream({public: true, metadata: {...}})