除了使用磁盘存储,我在Express JS项目上使用什么进行视频上传?目前我正在使用multer,它存储在我的EC2磁盘中,但我认为我应该使用一些aws云,什么样的aws云最适合生产级别,以及如何使用multer实现到我的项目中,并通过使用Express查看。静态我想知道我如何实现任何aws存储设施到我的项目,除了使用aws EC2磁盘存储,因为会有很多大的视频上传在我的项目,1 TB也是非常少的存储为我的项目。
bf1o4zei1#
您需要创建一个AWS S3 Bucket,获取您的凭据,然后创建一个上传服务,如下所示:(始终记住桶对象和端点的权限)
import aws from 'aws-sdk' import { ManagedUpload } from 'aws-sdk/clients/s3' import { FileArray, UploadedFile } from 'express-fileupload' import { flatten } from 'ramda' type ResponseUpload = { uploaded: any[] error: boolean } export const UploadService = () => { aws.config.update({ secretAccessKey: '<YOUR_SECRET_ACCESS_HERE>', accessKeyId: '<YOUR_ACCESS_KEY_ID_HERE>', region: '<REGION_OF_YOUR_BUCKET>' }) const s3 = new aws.S3() const upload = async (requestFiles: FileArray): Promise<ResponseUpload> => { const files: UploadedFile | UploadedFile[] = flatten([requestFiles.files]) const responseUpload: ResponseUpload = { uploaded: [], error: false } for (const file of files) { if (!responseUpload.error) { try { const uploadedFile = await uploadS3(file) responseUpload.uploaded = [...responseUpload.uploaded, { ...uploadedFile, ...file }] } catch (err) { responseUpload.error = true } } } return responseUpload } return { upload } }
1条答案
按热度按时间bf1o4zei1#
您需要创建一个AWS S3 Bucket,获取您的凭据,然后创建一个上传服务,如下所示:
(始终记住桶对象和端点的权限)