我正在尝试从Amazon S3存储中删除图像,但它不会删除。
我正在使用以下代码:
var s3 = AWS.S3(awsCredentials);
s3.deleteObject({
Bucket: MY_BUCKET,
Key: myKey
},function (err,data){})
但我要删除的图片仍然存在。
我甚至使用s3.deleteObjects
函数,它返回已删除的对象名称,但是当我检查存储时,图像仍然存在。
答案 0 :(得分:4)
您必须以这种方式使用密钥,而不仅仅是要删除的文件的名称,然后才能使用。
var s3 = AWS.S3(awsCredentials);
s3.deleteObject({
Bucket: MY_BUCKET,
Key: 'some/subfolders/nameofthefile1.extension'
},function (err,data){})
答案 1 :(得分:1)
动态发送密钥时,请使用本地存储存储密钥并动态发送以删除图像
var s3 = AWS.S3(awsCredentials); s3.deleteObject({ Bucket: MY_BUCKET, Key: 'yourFileKey' },function (err,data){})
答案 2 :(得分:0)
您必须指定确切的密钥。例如:如果它在存储桶的根目录中,则
然后Key: "your key.extension"
。而且,如果它位于folder/subfolder/filename.extension.
之类的其他目录中,则必须指定它。
const s3 = new AWS.S3({
accessKeyId: process.env.AWS_ID,
secretAccessKey: process.env.AWS_SECRET,
});
const params = {
Bucket: process.env.AWS_BUCKET_NAME,
Key: `folder/subfolder/filename.fileExtension`
};
s3.deleteObject(params, (error, data) => {
if (error) {
res.status(500).send(error);
}
res.status(200).send("File has been deleted successfully");
});