快速使用

快速运行 SDK 示例

1. 准备工作

  1. 登录对象存储控制台,创建存储空间。获取存储空间名称和存储空间域名。
  2. 登录账号管理控制台,获取您的项目公钥和私钥。
  3. 配置CORS 规则,来源Origin可以按需配置,Allow-Header 需配成*,Expose-Headers 需要 ETag、Content-Length 以及其他 js 需要读取的 header 字段,如下图所示。 image-cors

2. 配置s3客户端文件

确保已完成跨域设置,进入src/utils文件夹,修改s3Client.js 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import { S3Client } from "@aws-sdk/client-s3";

const s3 = new S3Client({
    endpoint: "",  // http://s3-cn-sh2.ufileos.com
    region: "",    // cn-sh2
    signatureVersion: 'v4',
    credentials: {
        accessKeyId: "",
        secretAccessKey: "",
    },
    forcePathStyle: true,   // 路径风格
});

export default s3;
  • 参数说明
参数名 参数描述 类型 是否必填
accessKeyId UCloud 的 API 公钥或者是 US3服务提供的 Token 公钥 String
secretAccessKey UCloud 的 API 私钥或者是 US3服务提供的 Token 私钥 String
endpoint 访问域名,具体可参考 AWS S3 协议支持说明 String
region 存储空间所在地域 String
signatureVersion AWS签名版本,默认使用签名版本 4 来验证请求 String
forcePathStyle 使用路径风格或虚拟主机风格,具体参考 AWS S3 协议支持说明 Boolean

3. 运行示例

1
$ npm start   # 启动示例

image-demo 以普通上传为例,必须的输入参数为配置文件对应地域下的Bucket Name,以及需要保存在该Bucket 下的Key Name (即文件名) ,存储类型默认为标准存储。若要指定存储类型,参照S3协议支持说明,确认完输入信息后点击上传文件。 如果浏览器控制台出现了CORS 相关的错误信息,请检查是否正确完成跨域配置。

注意

  • PutObject 目前仅支持 5GB 大小文件,如果需要上传大于 5GB 的文件,请采用分片上传的 API
  • PostObject 目前仅支持最大 32MB 文件的上传
  • CopyObject 目前仅支持最大 5G文件的拷贝
  • UploadPart 目前仅支持 8MB 定长分片大小(最后一个分片允许小于 8MB)。若有不定长分片的需求,请联系技术支持
  • US3 S3 对 AWS S3 兼容的存储类型及其转换规则参考 存储类型转换规则
  • US3 的 ETag 计算方式与 AWS S3 存在部分差异,建议不依赖该 ETag
  • 目前不支持 S3 API 的 MD5 校验,建议关闭
  • US3 的访问权限(ACL)定义与 AWS S3 存在差异,具体参考 访问权限定义(ACL)
  • 目前不支持多版本功能(Versioning)
  • 目前不支持标签功能(Tagging)
  • ListObjects请求中的max-keys参数(请求返回对象的最大数量)最大值为5000
  • 更详细的内容请查看 AWS S3 协议支持说明