Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将同名文件上载到AmazonS3并覆盖现有文件_Node.js_Amazon Web Services_File Upload_Amazon S3 - Fatal编程技术网

Node.js 如何将同名文件上载到AmazonS3并覆盖现有文件

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

我使用此代码将图像上传到AmazonS3服务器。但是我不能上传相同名称的文件(这个名称已经存在于服务器s3上)。如何上载同名文件并覆盖服务器s3上存在的文件。感谢您的帮助:)

默认情况下,当您上载同名文件时。它将覆盖现有文件。如果您想让以前的文件可用,您需要在bucket中启用版本控制。

我猜您遇到了默认的缓存机制,即24小时,这会导致不接收最新存储的对象。 若要覆盖此选项,请将参数添加到putObject():

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)
    });