Skip to main content
Blob Storage 提供一个兼容 S3 的网关,可与任何 S3 客户端配合使用。SDK 可以为你提供其凭据,或者提供一个来自 AWS SDK 的现成 S3Client。
这两个方法都需要 API 密钥。使用上传令牌创建的客户端会收到 403 UPLOAD_TOKEN_NOT_ALLOWED,旧格式的密钥会收到 LEGACY_API_KEY。

s3()

s3() 返回一个来自 @aws-sdk/client-s3 的 S3Client,它已配置好网关的 endpoint、区域和凭据,并设置了 forcePathStyle: true。 @aws-sdk/client-s3 是一个可选的对等依赖:仅在使用 s3() 时安装。它会被延迟加载,因此 SDK 本身保持无依赖。

Bucket

S3 key 如何映射到对象,请参见 Bucket 和 Key;网关接受哪些操作,请参见支持的操作。

s3Credentials()

对于其他 S3 客户端(aws-cli、rclone、boto3……),s3Credentials() 返回原始的密钥对:
对于其他任何客户端,请使用路径风格寻址。
secret_access_key 提供与 API 密钥相同的访问权限。请将其保存在服务器端,并像保存密钥本身一样存储它。撤销或轮换 API 密钥也会使该密钥对失效。

缓存

该密钥对对于每个 API 密钥都是确定的,因此 SDK 会按客户端实例缓存它:s3Credentials() 和 s3() 只调用一次 API,之后的调用会复用该结果。失败的调用不会被缓存,因此下一次调用会重新尝试。
凭据路由每小时只接受 10 个请求。请创建一个 SquareCloudBlob 客户端并复用它,而不是每个请求都创建一个。
API 参考:S3 Credentials。