AWS S3对象删除,Node.js

必看瓜

我遇到以下情况,我将图像存储在S3中,每个图像都在其自己的文件夹中,如下所示:

https://s3.eu-central-9.amazonaws.com/my-app/6a68045c14754f3c0b22d206053ff67406217981043a24ad06d3789b67024747125b8900ee8a1e9af2220a5c6558946136cd82807d0666b4678406337239530f/1535565432.jpg

我正在使用AWS开发工具包,尝试了两种方法:

  • 走完整的路
  • 仅在my-app之后传递路径

通过这两种方式,我都会得到如下响应:

{ Deleted: [ { Key: '/1b37c7ad1d9f021e000813b9d16b8ae2b24e6ed6f3c4430bfb8196ca63eec57eafe5bf2ee8993a7846faca0c95cec587395d6639f2aeb73447fb9429b673f0ca/1535564545.jpg' } ],
Errors: [] }

但是,如果我去检查一下我的存储桶,文件和文件夹都就位了,为什么不知道为什么呢,有什么建议吗?

我开始认为我应该跳过文件夹的创建,而是将图像添加到存储桶的根目录中。

[更新] S3.deleteObjects方法的参数:

{ 
    Bucket: 'my-app',
    Delete: { 
        Objects: [{
            Key: '/c506c3b842e1729c41542b7867b14a5eefb4159336105392ed99d250153aeea515e39986f850e3c8674d082b760b7e0d3ab5edf1c7c3e5d89ea7e71a399c0e5e/1535610612.jpg' 
        }] 
    } 
}

我正在使用无服务器框架,借助它创建了存储桶-可能与此有关吗?我在构建此文件时遇到的唯一错误是,执行删除操作的lambda函数没有执行此操作的权限,一旦我添加了s3:DeleteObject,便对此表示欢迎。

贾莫德

这里的问题在于您指示S3存储桶和SDK密钥的方式。当前提供它们如下:

Bucket: https://s3.eu-central-9.amazonaws.com/my-app
Key: /1234.jpg

它们应提供如下:

Bucket: my-app
Key: 1234.jpg

如果对象位于子文件夹结构中,则它将是:

Bucket: my-app
Key: folder1/folder2/1234.jpg

我认为这里的部分问题是您提供的信息不正确,但是S3响应正常。如果要求S3删除不存在的对象,它将返回OK。这是安全的事情。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章