【发布时间】:2022-01-19 19:04:00
【问题描述】:
我使用react native,后端是用Prisma和GraphQL(Apollo服务器)构建的。
我不将图像数据存储到 Prisma,而是存储到 aw3。
问题是我想一次将多张图片上传到我的应用程序。所以我制作了 Prisma Array [] 的 image 列,而不是 String。
但由于使用 aw3,我一次只能上传一张图片。因此,即使我将图像列设为数组,我也无法使用aw3 一次将多张图像作为数组上传。
当我搜索人们建议 3 个选项以便通过 aw3 上传多个文件时。
- 多线程
- 多处理
- zip 上传 (amazon-lambda)
在我的情况下(上传文件为Array),
哪个选项是最可取的?
你能教我怎么做吗?
我的后端代码:
export const uploadToS3 = async (file, userId, folderName) => {
const { filename, createReadStream } = await file;
const readStream = createReadStream();
const objectName = `${folderName}/${userId}-${Date.now()}-${filename}`;
const { Location } = await new AWS.S3()
.upload({
Bucket: "chungchunonuploads",
Key: objectName,
ACL: "public-read",
Body: readStream,
})
.promise();
return Location;
};
【问题讨论】:
-
你是从客户端上传还是从服务器上传?无论哪种方式,您都可以先上传所有文件(只是 Promise.all 或类似的东西),然后调用后端或更新数据库实体等。
-
@Danila 来自服务器。我编辑我的帖子,包括我的代码。上面的这段代码不能生成数组。你能教我更多吗?
标签: amazon-web-services react-native amazon-s3 graphql prisma