AWS图像上传表单数据到S3时数据损坏。
创始人
2024-09-27 17:00:57
0

这个问题通常是由于异步文件传输导致的。为了避免文件传输被破坏,您可以使用 AWS S3 Transfer Acceleration 或进行流式传输。以下是一个使用 Express 和 multer-s3 的示例代码,实现了流式上传到 S3 :

const express = require('express');
const multer = require('multer');
const AWS = require('aws-sdk');
const multerS3 = require('multer-s3');

const app = express();

const s3 = new AWS.S3({
  accessKeyId: YOUR_ACCESS_KEY_ID,
  secretAccessKey: YOUR_SECRET_ACCESS_KEY,
});

const upload = multer({
  storage: multerS3({
    s3,
    bucket: YOUR_BUCKET_NAME,
    contentType: multerS3.AUTO_CONTENT_TYPE,
    acl: 'public-read',
    key(req, file, cb) {
      cb(null, `folder-name/${Date.now().toString()}-${file.originalname}`);
    },
  }),
});

app.post('/upload', upload.single('file'), (req, res) => {
  res.send('File uploaded successfully');
});

app.listen(3000, () => {
  console.log('Server started');
});

在这个示例代码中,我们将文件流式上传到 S3 ,并生成唯一的文件名。我们使用了 multer-s3 库来实现上传,该库支持多云服务商,包括 AWS S3 。如果您想使用 AWS S3 辅助传输,请将 multerS3 对象中的 accelerate 属性设置为 true

最后,记得使用正确的 AWS 凭证访问您的桶,以便您的应用程序可以成功上传文件。

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...