使用v3 ASK PHP SDK删除对象

时间:2018-01-12 12:58:29

标签: php amazon-web-services amazon-s3

我无法登录:

require 'aws-autoloader.php';

$client = new Aws\S3\S3Client([
    'version' => 'latest',
    'region'  => REGION,
    'endpoint'    => HOST,
        'credentials' => [
        'key'      => AWS_KEY,
        'secret'   => AWS_SECRET_KEY,
    ],
]);

$result = $client->deleteObject(array(
'Bucket' => $BucketName,
'Key'    => $FileKey,
));

永远不会创建$ client对象。如果我在没有凭据的情况下运行它会创建$ client。亚马逊文档说这是如何硬编码凭证。文档中有不同的例子来自之前的sdk,这实在令人困惑。从V3删除对象的正确方法是什么?如果重要的话,我不会使用作​​曲家。

更新

代码有效但端点值导致问题。如果我使用http://bucket.s3.amazonaws.com/作为主机,它会尝试抓取http://bucket.bucket.s3.amazonaws.com/key并抛出未找到的404,如果我将其更改为http://s3.amazonaws.com它根本不起作用,如果我删除它尝试获取的主机http://s3.amazonaws.com/bucket/key提供204状态消息,删除标记仍为false,文件未被删除。我不知道如何使deleteObject在结果中创建正确的有效。我不知道204状态意味着什么。

代码在没有端点字段的情况下工作正常。我没有在S3 CORRS中允许DELETE。它现在有效。

require 'aws-autoloader.php';

$client = new Aws\S3\S3Client([
    'version' => 'latest',
    'region'  => REGION,
        'credentials' => [
        'key'      => AWS_KEY,
        'secret'   => AWS_SECRET_KEY,
    ],
]);

$result = $client->deleteObject(array(
'Bucket' => $BucketName,
'Key'    => $FileKey,
));

0 个答案:

没有答案