【发布时间】:2018-05-16 07:06:26
【问题描述】:
我在 php-symfony2 中创建了上传和下载服务。这工作正常。现在我想删除上传的文件。有什么例子吗?
注意:没有数据存储到数据库表中。
【问题讨论】:
我在 php-symfony2 中创建了上传和下载服务。这工作正常。现在我想删除上传的文件。有什么例子吗?
注意:没有数据存储到数据库表中。
【问题讨论】:
删除一个对象(非版本化存储桶)
$s3 = S3Client::factory();
使用存储桶名称和键名称执行 Aws\S3\S3Client::deleteObject() 方法。
$result = $s3->deleteObject(array( '桶' => $桶, '键' => $keyname ));
如果启用版本控制,将添加 DELETE MARKER。 (References)
示例
<?php
require 'vendor/autoload.php';
use Aws\S3\S3Client;
$s3 = S3Client::factory();
$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';
$result = $s3->deleteObject(array(
'Bucket' => $bucket,
'Key' => $keyname
));
更多参考可以在here找到。
【讨论】:
在我尝试了很多解决方案后,我找到了最适合我的解决方案。
$s3 = Storage::disk('s3');
$s3->delete('filename');
【讨论】:
你可以使用deleteObject()方法,参考doc。
use Aws\S3\S3Client;
$s3 = S3Client::factory();
$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';
$result = $s3->deleteObject(array(
'Bucket' => $bucket,
'Key' => $keyname
));
【讨论】:
您可以使用 aws s3 delete API 方法删除上传的文件。你可以像下面这样实现它。
使用 Aws\S3\S3Client;
$s3 = new S3(awsAccessKey, awsSecretKey);
$s3->deleteObject("bucketname", filename);
【讨论】:
不幸的是,Arsalan 的回答似乎不再有效。使用访问和密钥对我有用的是:
$this->s3 = new S3Client([
'driver' => 's3',
'version' => 'latest',
'region' => env('AWS_DEFAULT_REGION'),
'credentials' => [
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY')
]
]);
$this->s3->putObject([
'Bucket' => env('AWS_BUCKET'),
'Key' => env('AWS_SECRET_ACCESS_KEY'),
'Body' => $body,
'Key' => $key
]);
【讨论】: