gpt4 book ai didi

node.js - 如何使用他们的 sdk 在 AWS S3 中移动(而不是复制)文件?

转载 作者:行者123 更新时间:2023-12-05 08:38:20 26 4
gpt4 key购买 nike

我需要将 AWS s3 存储桶中的文件移动到另一个位置,例如:

我查看了文档:https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html ,但没有发现任何关于移动或更新文件的提及(我想我可以更新文件 key 路径...)。

到目前为止,我似乎需要复制文件然后删除旧文件?有更直接的方法吗?

我当前复制然后删除旧文件的代码:

function moveFileInAws(fromLocation, toLocation, callback) {
awsSdk.copyObject({
Bucket: BUCKET_NAME,
ACL: 'public-read',
CopySource: fromLocation,
Key: toLocation
}, (err, data) => {
if (err) {
console.log(err)
return callback("Couldn't copy files in directory")
}
// callback()
awsSdk.deleteObject({ Key: fromLocation }, (err, data) => {
if (err) {
console.log("Couldn't delete files in directory")
console.log(err)
return callback("Couldn't delete files in directory")
}
callback()
})
})
}

最佳答案

基于此处的答案:AWS S3 - Move an object to a different folder其中用户@Michael-sqlbot 评论:

That's because S3, itself, doesn't have an atomic move or rename operation... so there isn't really an alternative

这里的文档:https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-s3-objects.html#copy-object (对于 Java SDK,但在这里似乎很有用)注释:

You can use copyObject with deleteObject to move or rename an object, by first copying the object to a new name (you can use the same bucket as both the source and destination) and then deleting the object from its old location.

听起来 S3 的基础架构根本不支持在单个操作中移动或重命名。您必须复制,然后删除。

关于node.js - 如何使用他们的 sdk 在 AWS S3 中移动(而不是复制)文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63061426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com