我正在尝试从AWS s3存储桶中删除单个文件,我的代码如下:
try {
//$client->deleteObject($bucket, $file1_cloud);
$result = $client->deleteObject(['Bucket' => 'my-bucket','Key' => 'myFile.png']);
} catch(\Aws\S3\Exception\S3Exception $e) {
echo "error"+$e;
}
任何人都可以告诉我我在做错什么,因为代码没有删除文件。
我尝试了以下代码,但是没有用:
UPDATE [dbo].[myTable] SET [column_indicator] = 1
FROM
(
SELECT a.[column_A],a.[column_indicator], COUNT(*) AS COUNT
FROM (select [dbo].[myTable].[column_A],[dbo].[myTable].[column_indicator]
from [dbo].[myTable]) a
GROUP BY a.[column_A],a.[column_indicator]
having COUNT > 1
) t
WHERE [dbo].[myTable].[column_A] = t.[column_A];
谢谢
答案 0 :(得分:2)
该对象未被删除,因为您已要求S3删除不存在的对象,并且S3将其视为无操作而不是错误。这是因为您指定的是URL,而不是对象的键。
S3对象密钥的示例是:
testing/cats/fluffykins.png
请注意,它不是URL,也不以正斜杠开头。
调用PHP deleteObject函数的正确方法的示例是:
$result = $s3Client->deleteObject([
'Bucket' => $bucket,
'Key' => $key,
]);
请注意,它需要一个参数数组,包括bucket和key。假定使用PHP 5.4或更高版本,您可以在其中使用短数组语法,该语法将array()
替换为[]
。
答案 1 :(得分:-1)
我已经通过使用以下代码解决了该问题:
$client = S3Client::factory(array(
'key' => "mykey",
'secret' => "my secret key"
));
//File reference on cloud.....
$file1_cloud = "TestFile/myFile.png";
$result = $client->deleteObject(array(
'Bucket' => $bucket,
'Key' => 'TestFile/myFile.png'));