首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重命名在Multer-s3上上传的图像

重命名在Multer-s3上上传的图像
EN

Stack Overflow用户
提问于 2018-08-18 10:02:03
回答 2查看 1.2K关注 0票数 0

概述:

我使用S3让用户上传图片。我正在使用PUT方法处理更新路由,该方法获取存储在S3桶中的临时文件夹中的给定图像的url,并将其移至图像文件夹。

这里是我的上传对象:

代码语言:javascript
复制
  const upload = multer({
  storage: multerS3({
    s3: s3,
    bucket: 'my-bucket',
    contentType: multerS3.AUTO_CONTENT_TYPE,
    acl: 'public-read',
    key: function (request, file, cb) {
      cb(null, folder + Date.now() + file.originalname);
    }
  }),
  limits:{
    fileSize: 1024 * 1024 * 5
  },
  fileFilter:fileFilter
});

在我使用的路径文件中:

代码语言:javascript
复制
upload.single('the_key_of_the_file')

问题:

此对象在上载新文件时工作,但不用于更新它(重命名文件)。

EN

回答 2

Stack Overflow用户

发布于 2018-08-18 10:25:00

问题在以下几个方面:

代码语言:javascript
复制
key: function (request, file, cb) {
      cb(null, folder + Date.now() + file.originalname);
    }

实际上,键是AWS-s3中文件的名称/id。您提供了一个新密钥,因此s3将标记为新文件。

您可以根据您想要的名称更改这里的逻辑,它应该是一个字符串。

例如:

代码语言:javascript
复制
key: function (req, file, cb) {
    console.log(file);
    cb(null, `${Date.now().toString()}${file.originalname}`);
}
票数 0
EN

Stack Overflow用户

发布于 2018-08-18 12:55:13

可能不是您需要在存储中传递的密钥对象,而是为此而工作的

代码语言:javascript
复制
 filename: function (req, file, cb) {
  cb(null, file.fieldname + '-' + Date.now()+path.extname(file.originalname))
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51907413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档