2017-12-29 30 views
0

node.js의 s3fs가 폴더에있는 모든 파일에 공개 읽기 액세스를 제공하는 방법은 무엇입니까?node.js의 s3fs가 폴더에있는 모든 파일에 대한 공용 읽기 액세스를 제공하는 방법은 무엇입니까?

나는 다음과 같은 코드를 사용하여 폴더 이름을 이름을 변경하려고 :

fsImpl.mkdirp(main_folder_path).then(function() { 
         fsImpl.copyDir(copy_folder_path+'/', main_folder_path+'/').then(function() { 
           console.log("copy directory") 
          }, function (reason) { 
           res.json('error'); 
          }); 
         }); 

성공적으로 모든 파일을 새 폴더에 복사 얻을됩니다,하지만 파일을 복사 공공 access..I 일부를 검색 한이 없습니다 소스 및 마침내 내가 대답을 얻을

fsImpl.writeFile(fileName, stream,{ACL: 'public-read'}).then(function (err,data) { 
    // code 
}) 

하지만 나는 폴더에 대한 액세스 권한을 부여해야합니다. 어떻게해야합니까 ??

미리 감사드립니다.

답변

0

S3 버킷에 공개 읽기 권한이 있습니까 ?? S3 계정으로 이동하지 않고 탭을 클릭하면 세 개의 새 탭이 표시됩니다. 해당 탭에서 버킷 정책을 클릭하십시오. 다음 JSON 코드를 거기에 추가하십시오.

{ 
"Version": "2008-10-17", 
"Statement": [ 
    { 
     "Sid": "AllowPublicRead", 
     "Effect": "Allow", 
     "Principal": { 
      "AWS": "*" 
     }, 
     "Action": "s3:GetObject", 
     "Resource": "arn:aws:s3:::YourBucket name/*" 
    } 
]} 

문제가 해결됩니다.

+0

나는 파일을 업로드 할 때만 공개 액세스를 제공하지만, s3fs npm을 사용하여 한 폴더에서 다른 폴더로 복사하는 동안 공용 액세스가 없음 – Vishnu

+0

이 링크가 도움이 될 수 있습니다. https://github.com/s3fs-fuse/s3fs-fuse/wiki/Fuse-Over-Amazon –

+0

@Priyanklohan s3fs-fuse는 [s3fs for Node.js]와 다릅니다 (https : // www .npmjs.com/package/s3fs). 이름 만 동일합니다. –