首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP如何将文件夹创建到aws s3存储桶中?

PHP如何将文件夹创建到aws s3存储桶中?
EN

Stack Overflow用户
提问于 2016-08-04 19:17:03
回答 1查看 2.1K关注 0票数 2

请帮帮我!我正在使用aws-php-sdk在aws s3服务器上上传一个文件。I可以将文件夹从我们的服务器移动到aws s3服务器,并且可以删除文件,但无法创建目录/I总是收到拒绝访问错误。

错误是

代码语言:javascript
复制
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
        ));
EN

回答 1

Stack Overflow用户

发布于 2016-08-05 20:28:34

我自己想出了解决方案。实际上,在创建新目录时,我不能授予对新目录的权限,因为我不是存储桶的所有者。我是作为第三方使用存储桶的。因此,我必须从代码中删除'ACL'=>'public-read',现在我的代码是

代码语言:javascript
复制
 $s3Client->putObject(array(
            'Bucket' => AWS_BUCKET, // Defines name of Bucket
            'Key' => AWS_PATH . "picture/", //Defines Folder name
            'Body' => "",
        ));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38765882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档