【问题标题】:How To make a resolution dynamic value in Multer Sharp S3 while uploading image to S3 Bucket将图像上传到 S3 存储桶时如何在 Multer Sharp S3 中制作分辨率动态值
【发布时间】:2021-02-08 18:49:57
【问题描述】:

你好我正在用multer-sharp-s3构建一个图片上传功能

将图像上传到 S3 Bucket 并根据预期分辨率调整其大小,因此根据我的要求,我必须从数据库中动态生成分辨率数字

const uploadS4 = multer({
    storage: s4Storage({
        s3: s3,
        ACL: 'public-read',
        Bucket: 'DIRECTORY',
        contentType: s4Storage.AUTO_CONTENT_TYPE,
        Key: (req, file, cb) => {
            cb(null, Date.now() + '-' + file.originalname);
        },
        resize: {
            width: Helper.getPartResolution(),
        }
    })
}).any();

但它不允许我从数据库中获取解决方案 我尝试从 Helper , Session 获取它,但它不起作用

请有人指导我如何从数据库中获取分辨率的动态值

由于此功能是在控制器的初始化上开发的,因此它不允许我提出任何查询来获取数据

【问题讨论】:

    标签: node.js amazon-s3 multer sharp


    【解决方案1】:

    如果您想动态分配宽度,看起来 multer-sharp-s3 不是您的解决方案。您必须编写自己的自定义解决方案,例如,使用 busboy。您可以将传入的数据作为流读取,检查文件名,确定宽度,然后调用 sharp 和 s3 upload 手动传递传入的文件数据。

    宽度基于什么样的逻辑?我在想宽度是否真的基于数据库内容。会不会是应用程序启动期间加载的配置数据?然后它将在运行时同步可用,并使事情变得更容易一些。不过,您仍然需要编写自定义逻辑。

    【讨论】:

      猜你喜欢
      • 2018-03-11
      • 1970-01-01
      • 2017-10-17
      • 2020-12-30
      • 2020-02-14
      • 2016-04-24
      • 1970-01-01
      • 2019-06-12
      • 1970-01-01
      相关资源
      最近更新 更多