簡體   English   中英

使用新的PHP SDK更新AWS S3項目ACL

[英]Update AWS S3 item ACL using new PHP SDK

如何使用新的AWS S3 PHP SDK以“ public-read”更新S3中的項目:似乎只能進行GET和PUT操作? http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.S3.S3Client.html

迭代器返回一個數組,而不是一個類。 Get對象返回一個類,但是沒有明顯的更新方法。 CopyObject似乎有點破解?

$s3->copyObject(array(
        'Bucket'     => 'media',
        'Key'        => $k,
        'CopySource' => 'media'.'/'.$k,
        'ACL'        => 'public-read',
));

收益:

PHP Fatal error:  Uncaught Aws\S3\Exception\InvalidRequestException: AWS Error Code: InvalidRequest, Status Code: 400, AWS Request ID: FC630F89A049823A, AWS Error Type: client, AWS Error Message: This copy request is illegal because it is trying to copy an object to itself without changing the object's metadata, storage class, website redirect location or encryption attributes., User-Agent: aws-sdk-php2/2.5.3 Guzzle/3.8.1 curl/7.35.0 PHP/5.5.9-1ubuntu4.4 thrown in /.../vendor/aws/aws-sdk-php/src/Aws/Common/Exception/NamespaceExceptionFactory.php on line 91

遲到總比不到好。

$s3Client->putObjectAcl(array(
    'Bucket'     => 'yourbucket',
    'Key'        => 'yourkey',
    'ACL'    => 'public-read'
));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM