我无法登录:
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,
));