用途:使用 AWS SDK for JavaScript v3 操作 S3 对象存储,完成文件上传、下载、列举、删除、复制与移动,并生成临时预签名 URL,避免在客户端暴露凭证。
主要能力:通过 S3Client 配置区域与凭证;PutObjectCommand 上传文件,可设置 ACL、Metadata、CacheControl、服务端加密、ContentDisposition 与标签;GetObjectCommand 下载并转为 Buffer 或字符串;ListObjectsV2Command 列举对象并支持 ContinuationToken 分页;DeleteObjectCommand 与 DeleteObjectsCommand 删除单个或多个对象;CopyObjectCommand 复制,配合删除实现移动;HeadObjectCommand 检查文件是否存在。大文件可用 @aws-sdk/lib-storage 的 Upload 做分片上传,支持并发数与进度事件。预签名方面,getSignedUrl 生成下载或上传 URL,createPresignedPost 生成浏览器表单直传,可限制大小与 Content-Type。
使用方式:先安装依赖 npm install @aws-sdk/client-s3 @aws-sdk/s3-request-presigner,再创建 S3Client 并传入 region 与凭证。示例中凭证来自环境变量 AWS_REGION、AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY。浏览器直传需配置 CORS,允许 GET、PUT、POST、DELETE 等方法。Next.js 可在 API Route 中生成预签名 URL,客户端再直接 PUT 到 S3。
适用场景:Web 应用文件上传、私有文件临时分享、大文件分片上传、静态资源托管,以及通过 endpoint 兼容 Cloudflare R2 等 S3 兼容存储。
限制:资料未提供具体收费、价格、性能数据或平台支持范围;实际权限、CORS、加密与生命周期规则需在 AWS 侧另行配置。