2016-08-04 13 views
2

bitte hilf mir! Ich benutze aws-php-sdk um eine Datei auf dem aws s3 Server hochzuladen. Ich bin in der Lage, den Ordner von unserem Server zu aws s3 Server zu verschieben und kann eine Datei löschen, aber nicht in der Lage, ein Verzeichnis zu erstellen/ Ich bekomme immer den Zugriff verweigert Fehler.PHP Wie erstellt man Ordner in den aws s3 Eimer?

Der Fehler ist

Error executing "PutObject" on "https://s3.amazonaws.com/***/***/***/picture/"; AWS HTTP error: Client error: `PUT https://s3.amazonaws.com/***/****/****/picture/` resulted in a `403 Forbidden` response: <?xml version="1.0" encoding="UTF-8"?> <Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>CE24E8 (truncated...) AccessDenied (client): Access Denied - <?xml version="1.0" encoding="UTF-8"?> <Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>CE24E8FFC9216978</RequestId><HostId>DHdN6tcopPTP9IsVu/qGWClf1+hAoWv7CNUWJRsOPWia4SfQYQ+VPYgJ3+vlqqRBNbYWB34gEQ0=</HostId></Error> 


and here is my code 

    $s3Client = new Aws\S3\S3Client([ 
      'version' => AWS_VERSION, 
      'region' => AWS_REGION, 
      'credentials' => [ 
       'key' => AWS_KEY, 
       'secret' =>AWS_SECRET, 
      ], 
     ]); 


//code to create the directory 

     $s3Client->putObject(array(
      'Bucket' => AWS_BUCKET, // Defines name of Bucket 
      'Key' => "picture/", //Defines Folder name 
      'Body' => "", 
      'ACL' => 'public-read' // Defines Permission to that folder 
     )); 

//I have also used along with full AWS_PATH, that is my uploading direcctory path on the aws server but none of them is working always gets the same error. 

     $s3Client->putObject(array(
      'Bucket' => AWS_BUCKET, // Defines name of Bucket 
      'Key' => AWS_PATH . "picture/", //Defines Folder name 
      'Body' => "", 
      'ACL' => 'public-read' // Defines Permission to that folder 
     )); 

Antwort

1

ich die Lösung mich selbst herausgefunden. Tatsächlich kann ich beim Erstellen eines neuen Verzeichnisses dem neuen Verzeichnis nicht die Berechtigung erteilen, da ich nicht der Eigner des Buckets bin. Ich benutzte den Eimer als dritte Partei. Also aus dem Code muss ich 'ACL' entfernen => 'public-read', jetzt ist mein Code