2017-03-26 72 views
1

是否可以通过aws-sdk重命名s3上的对象?我无法找到一个方法,也许有一个provisionary解决方案...node.js通过aws-sdk模块重命名s3对象

+1

除非他们已经改变了,我不认为你可以在S3上重命名对象。您可以将其复制到具有新名称的对象并删除原始对象。 –

+0

下面是一个例子:https://gist.github.com/roparz/e9dedb2b8d421d75b989 – jarmod

+0

@ barry-johnson:我希望那不是这样的情况 –

回答

4

我会回答我猜想,因为没有人 - 这个应该工作

// create a new s3 object 
var s3 = new AWS.S3(); 

var BUCKET_NAME = 'your-bucket-name'; 
var OLD_KEY = '/original-file.js'; 
var NEW_KEY = '/new-file.js'; 

// Copy the object to a new location 
s3.copyObject({ 
    Bucket: BUCKET_NAME, 
    CopySource: `${BUCKET_NAME}${OLD_KEY}`, 
    Key: NEW_KEY 
}) 
    .promise() 
    .then(() => 
    // Delete the old object 
    s3.deleteObject({ 
     Bucket: BUCKET_NAME, 
     Key: OLD_KEY 
    }).promise() 
    ) 
    // Error handling is left up to reader 
    .catch((e) => console.error(e))