从Amazon S3 Storage删除图像

时间:2016-06-28 18:02:42

标签: node.js amazon-web-services amazon-s3

我正在尝试从Amazon S3存储中删除图像,但它不会删除。

我正在使用以下代码:

var s3 = AWS.S3(awsCredentials);
s3.deleteObject({
  Bucket: MY_BUCKET,
  Key: myKey
},function (err,data){})

但我要删除的图片仍然存在。

我甚至使用s3.deleteObjects函数,它返回已删除的对象名称,但是当我检查存储时,图像仍然存在。

3 个答案:

答案 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");
});