控制台指南

最佳实践

开发者指南

API 文档

SDK 文档

生成预签名链接

最近更新时间:2021-08-31 17:57:45

简介

本文档提供关于生成对象预签名链接的示例代码。

说明:

  • 建议用户使用临时密钥生成预签名,通过临时授权的方式进一步提高预签名上传、下载等请求的安全性。申请临时密钥时,请遵循 最小权限指引原则,防止泄漏目标存储桶或对象之外的资源。
  • 如果您一定要使用永久密钥来生成预签名,建议永久密钥的权限范围仅限于上传或下载操作,以规避风险。

SDK API 参考

SDK 所有接口的具体参数与方法说明,请参考 SDK API 参考

生成对象预签名链接

示例代码一:生成预签名上传链接

try {
    String bucket = "examplebucket-1250000000"; //存储桶名称
    String cosPath = "exampleobject"; //即对象在存储桶中的位置标识符。
    String method = "PUT"; //请求 HTTP 方法
    PresignedUrlRequest presignedUrlRequest = new PresignedUrlRequest(bucket
            , cosPath) {
        @Override
        public RequestBodySerializer getRequestBody()
                throws CosXmlClientException {
            //用于计算 put 等需要带上 body 的请求的签名 URL
            return RequestBodySerializer.string("text/plain",
                    "this is test");
        }
    };
    presignedUrlRequest.setRequestMethod(method);

    String urlWithSign = cosXmlService.getPresignedURL(presignedUrlRequest);
} catch (CosXmlClientException e) {
    e.printStackTrace();
}

说明:

更多完整示例,请前往 GitHub 查看。

示例代码二:生成预签名下载链接

try {
    String bucket = "examplebucket-1250000000"; //存储桶名称
    String cosPath = "exampleobject"; //即对象在存储桶中的位置标识符。
    String method = "GET"; //请求 HTTP 方法.
    PresignedUrlRequest presignedUrlRequest = new PresignedUrlRequest(bucket
            , cosPath);
    presignedUrlRequest.setRequestMethod(method);

    String urlWithSign = cosXmlService.getPresignedURL(presignedUrlRequest);

} catch (CosXmlClientException e) {
    e.printStackTrace();
}

说明:

更多完整示例,请前往 GitHub 查看。

目录