使用 multer-s3 nodejs 将图像上传到亚马逊 s3

2024-01-06

我正在尝试使用将图像上传到亚马逊 s3multer-s3,但我收到此错误:

类型错误:预期 opts.s3 为对象 node_modules/multer-s3/index.js:69:20

这是我的服务器代码:

var upload = multer({
    storage: s3({
        dirname: '/',
        bucket: 'bucket',
        secretAccessKey: 'key',
        accessKeyId: 'key',
        region: 'us-west-2',
        filename: function (req, file, cb) {
            cb(null, file.originalname); 
        }
    })
});

app.post('/upload', upload.array('file'), function (req, res, next) {
    res.send("Uploaded!");
});

为什么我会收到此错误?


[2022 年 3 月更新]到目前为止,它工作得很好,现在还显示上传的文件公共 URL。

Complete和工作节点作弊 |使用 multer-s3 上传到 s3 https://github.com/zishon89us/node-cheat/tree/master/aws/express_multer_s3可用的。

Code:

var express = require('express'),
    aws = require('aws-sdk'),
    bodyParser = require('body-parser'),
    multer = require('multer'),
    multerS3 = require('multer-s3');

aws.config.update({
    secretAccessKey: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
    accessKeyId: 'XXXXXXXXXXXXXXX',
    region: 'us-east-1'
});

var app = express(),
    s3 = new aws.S3();

app.use(bodyParser.json());

var upload = multer({
    storage: multerS3({
        s3: s3,
        acl: 'public-read',
        bucket: 'bucket-name',
        key: function (req, file, cb) {
            console.log(file);
            cb(null, file.originalname); //use Date.now() for unique file keys
        }
    })
});

//open in browser to see upload form
app.get('/', function (req, res) {
    res.sendFile(__dirname + '/index.html');//index.html is inside node-cheat
});

//use by upload form
app.post('/upload', upload.array('upl', 25), function (req, res, next) {
    res.send({
        message: "Uploaded!",
        urls: req.files.map(function(file) {
            return {url: file.location, name: file.key, type: file.mimetype, size: file.size};
        })
    });
});
  
app.listen(3000, function () {
    console.log('Example app listening on port 3000!');
});

对于完整的回购:

克隆节点作弊Express_multer_s3 https://github.com/zishon89us/node-cheat/tree/master/aws/express_multer_s3, run node app其次是npm install express body-parser aws-sdk multer multer-s3.

快乐帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 multer-s3 nodejs 将图像上传到亚马逊 s3 的相关文章

随机推荐

  • 是否应该避免 x._1,x._2... 语法?

    我刚刚开始使用 Scala 我发现自己经常使用元组变量 例如 这是我编写的一些代码 Count each letter of a string and return in a list sorted by character countLe
  • 以符合 HTML5 的方式将
    向左对齐

    目前 我正在使用 hr align left 在我的 HTML5 页面上 但我读到 align 属性在 XHTML 4 01 中已被弃用 并且据说已从 HTML5 中删除 我想使用 CSS 而不是像这样的内联属性 但是当我尝试时 hr al
  • 使用 timeit.Timer() 时如何传递函数的参数

    这是一个简单程序的概要 some pre defined constants A 1 B 2 function that does something critical def foo num1 num2 do something main
  • 在“UIDatePicker”类型的对象上找不到属性“preferredDatePickerStyle”

    我正在使用react native 0 62 2版本和datetimepicker版本3 0 1 当我尝试使用 xcode 构建项目时 显示以下错误 使用未声明的标识符 UIDatePickerStyleCompact 使用未声明的标识符
  • 用于连续半部分的无限序列的 Linq 语句

    给定一个起始数 想象一下它的连续两半的无限序列 1 0 5 0 25 0 125 忽略任何固有的数值不稳定性double 这可以在单个表达式中完成 而无需编写任何自定义扩展方法或生成器方法吗 我不知道单表达式方式 但我在这里找到了这个聪明的
  • 查询 WMI 类 Win32_QuickFixEngineering 返回很多奇怪的时间戳 (C#)

    类文档here http msdn microsoft com en us library aa394391 VS 85 aspx InstalledOn 属性应该具有安装修复程序时的时间戳 好吧 废话 但文档没有说明格式是什么 我得到一些
  • preg_replace PREG_BAD_UTF8_ERROR

    我有一个烦人的问题preg replace和字符集 我正在做一对preg replace连续但不幸的是第一次出现任何特殊字符 例如 由 preg replace 插入我得到PREG BAD UTF8 ERROR在随后的通话中 除了插入的特殊
  • TEE 之后如何处理镜像(重复)的 iptables 流量?

    我有一个关于使用 TEE 选项 iptables 流量进行镜像的问题 主要目标是将服务器 A 端口 1935 上服务的所有流量复制到服务器 B 上同一端口 端口 1935 上运行的相同服务 例如 如果我开始将视频流式传输到 192 168
  • Maven 插件,用于创建可执行 jar,其依赖项未解压(jar with jars)

    我阅读了很多使用依赖项构建可执行 jar 的解决方案 maven 阴影插件 maven 依赖项插件 maven 程序集插件 所有这些插件都会解压依赖项 jar 并将它们重新打包到可执行 jar 中 唯一将解压到可执行 jar 中的依赖项 j
  • 外键中的循环依赖:使用还是避免?

    我的应用程序将数据库中的大量数据加载到复杂的数据结构中 内存中的数据结构类似于数据库的结构 这意味着如果数据库包含以下表 表A 键为A1 表 B 键为 B1 其中一列是表 A 的键 的外键 表 C 键为 C1 其中一列是表 B 的键 的外键
  • 如何在Android Studio中使用Google Cloud Translation API?

    我正在制作一个用于语言翻译的 Android 应用程序 到目前为止 我已经使用语音识别器意图将语音输入转换为字符串 现在我想将该字符串翻译成另一种语言 并使用 TTS 引擎说出翻译后的文本 我创建了一个单独的translate test文件
  • 如何将视图模型传递到布局/母版页?

    在谷歌搜索了一段时间后 我对如何在 asp mvc 3 中执行此操作有点困惑 因此 任务是为多个控制器的视图提供一个通用的布局 或主 页面 所有视图本身都是强类型的 这个布局页面实际上可视化了一些强类型对象 因此 我需要将此对象传递到布局页
  • 在 Matplotlib 中使用获取和设置轴方法的相对坐标

    控制位置的一种方法figure反对新的axes应该是通过使用add axes方法 此方法接受 4 个值的列表或元组 这些值表示 左 下 宽 高 其中所有数量均以图形宽度和高度的分数形式表示 例如 import matplotlib fig
  • 如何确定特定动画帧何时运行

    我想知道动画的某些帧何时运行以设置各种条件 在下面的代码中 如何使用计数器或设置条件来确定特定动画帧 例如第 3 帧和第 8 帧 当前正在运行的时间 NSMutableArray frameArray NSMutableArray arra
  • 从Python脚本解析PHP文件变量

    我需要从我的 Python 脚本的 PHP Wordpress 配置文件中获取一些数据 我如何解析配置数据 例如 我怎样才能得到 wp 版本价值 配置示例 The WordPress version string global string
  • Java中有没有办法在不传输或下载的情况下获取图像的宽度和高度?

    为了获得图像的高度 我们可以使用ImageIO read new URL getHeight https docs oracle com javase 8 docs api java awt image BufferedImage html
  • 将数字转换为 16 位浮点数(以字节形式存储)并返回?

    出于 有损 压缩的目的 我希望能够将 Javascript 数字转换为 16 位浮点表示形式 以存储在 Uint16Arrays 或 Uint8Arrays 以最简单的为准 中 然后我希望能够从2 个字节对应一个数字 我不需要对 16 位数
  • numpy.fft() 返回值幅值+相移或角度是多少?

    np fft fft 返回一个复数数组 复数的含义是什么 我想实部是振幅 虚部是相移 相位角 或者是其他东西 我发现数组中的位置代表频率 这并不是一个真正的编程问题 也不特定于numpy 简而言之 复数的绝对值 sqrt x real 2
  • 如何进行不区分大小写的字符串替换

    嗨朋友们我正在创建一个应用程序 我想在其中找到一个特定的单词ArrayList我必须更换用另一个词来说 我使用了下面的代码 它区分大小写 但我想让它不区分大小写 FillintheBlank class public class Filli
  • 使用 multer-s3 nodejs 将图像上传到亚马逊 s3

    我正在尝试使用将图像上传到亚马逊 s3multer s3 但我收到此错误 类型错误 预期 opts s3 为对象 node modules multer s3 index js 69 20 这是我的服务器代码 var upload mult