Node.js 如何将同名文件上载到AmazonS3并覆盖现有文件
我使用此代码将图像上传到AmazonS3服务器。但是我不能上传相同名称的文件(这个名称已经存在于服务器s3上)。如何上载同名文件并覆盖服务器s3上存在的文件。感谢您的帮助:)默认情况下,当您上载同名文件时。它将覆盖现有文件。如果您想让以前的文件可用,您需要在bucket中启用版本控制。我猜您遇到了默认的缓存机制,即24小时,这会导致不接收最新存储的对象。 若要覆盖此选项,请将参数添加到putObject():Node.js 如何将同名文件上载到AmazonS3并覆盖现有文件,node.js,amazon-web-services,file-upload,amazon-s3,Node.js,Amazon Web Services,File Upload,Amazon S3,我使用此代码将图像上传到AmazonS3服务器。但是我不能上传相同名称的文件(这个名称已经存在于服务器s3上)。如何上载同名文件并覆盖服务器s3上存在的文件。感谢您的帮助:)默认情况下,当您上载同名文件时。它将覆盖现有文件。如果您想让以前的文件可用,您需要在bucket中启用版本控制。我猜您遇到了默认的缓存机制,即24小时,这会导致不接收最新存储的对象。 若要覆盖此选项,请将参数添加到putObject(): CacheControl:“无缓存” 或者Expires:new Date()buck
CacheControl:“无缓存”
或者
Expires:new Date()
bucket是否启用了版本控制或其他一些策略,因为默认情况下更新文件应该有效。请帮助我们更好地了解您的问题。正如@VsevolodGoloviznin所说,上传具有相同路径和名称的文件(S3称之为对象键)应该会自动将旧文件替换为新文件。旧文件实际上不会被删除,但只有在bucket上启用版本控制时才会被隐藏。如果任何人想要引用,“Amazon S3是一个分布式系统。如果它同时收到同一对象的多个写入请求,它将覆盖除最后写入的对象外的所有对象”请注意,如果您在S3UI中单击“上载”,拖放文件,然后只需单击“上载”,则可能会更改文件的权限。例如,我们失去了“公共”读取权限,因此我们必须重复这些步骤并添加该权限。
s3.putObject({
Bucket: bucketName,
Key: fileName,
Body: file,
ACL: 'bucket-owner-full-control'
}, function(err, data) {
if (err) {
console.log(err);
}
console.log(data)
});