![](/img/trans.png)
[英]How to retrieve list of objects (including the metadata associated with each object) from AWS S3 bucket using AWS Javascript SDK?
[英]How to update metadata on an existing object in s3 using javascript?
我尝试使用copyObject方法更新视频中的元数据。 我的视频文件最终被删除,并且我的元数据已更新。 为什么我的文件被删除?
我在下面附加了一些代码片段:
我成功请求了预签名的网址
let params = { Bucket: bucketName, Key: filePath, Expires: this.expiration, CopySource: `${bucketName}/${filePath}/`, Metadata: req.body.metadata, MetadataDirective: 'REPLACE' }; this.s3.getSignedUrl('copyObject', params, (err, data) => { if (err) { console.log('err', err); res.status(400).send(err); } else { res.status(200).send(data); } });
然后,将PUT请求成功发送到已签名的url。
let response: any = await this.$http({ url: signedUrl, method: 'PUT' });
但是当我转到s3控制台时,我看到我的视频文件已被删除并且元数据已更新。 我究竟做错了什么? 谢谢。
我只是想通了...。当我将PUT请求发送到预先签名的url时,我添加了一个“ x-amz-copy-source”标头即可使用! 我的元数据已更新,并且我的原始文件没有被覆盖和删除。 我从这里使用了文档。
所以我的PUT请求现在看起来像
let response: any = await this.$http({ url: signedUrl, method: 'PUT', headers: { 'x-amz-copy-source': `/${bucketName}/${key}` } });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.