2017-12-29 18 views
0

Wie öffentliche Lesezugriff auf alle Dateien im Ordner von s3fs in node.js bereitstellen?Wie öffentliche Lesezugriff auf alle Dateien im Ordner von s3fs in node.js bereitstellen?

Ich versuche, den Ordnernamen, indem Sie folgenden Code zu umbenennen:

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'); 
          }); 
         }); 

Erfolgreich werden alle Dateien auf neuen Ordner erhalten kopieren, aber die Kopien Dateien nicht öffentlich access..I einige gesucht Quellen und schließlich bekomme ich folgende Antwort

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

Aber ich muss Zugriff auf den Ordner geben. Wie mache ich das??

Vielen Dank im Voraus.

Antwort

0

Hat Ihr S3-Bucket öffentlichen Lesezugriff? Wenn nicht, gehen Sie zu Ihrem S3-Konto und dort finden Sie die Registerkarte "Berechtigungen", nachdem Sie darauf geklickt haben, dass Sie drei neue Tabs haben. Aus diesen Registerkarten Klicken Sie auf Bucket Policy. und fügen Sie den folgenden JSON-Code dort hinzu.

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

Es wird Ihr Problem lösen.

+0

Ich gebe öffentlichen Zugang nur, wenn ich die Datei hochladen..aber während des Kopierens von einem Ordner zum anderen mit s3fs npm gibt es keinen öffentlichen Zugang – Vishnu

+0

könnte dieser Link Ihnen helfen. https://github.com/s3fs-fuse/s3fs-fuse/wiki/Fuse-Over-Amazon –

+0

@Priyanklohan Beachten Sie, dass s3fs-fuse nicht dasselbe ist wie [s3fs für Node.js] (https: // www .npmjs.com/Paket/s3fs). Nur der Name ist gleich. –

Verwandte Themen