tencent cloud

文档反馈

生成预签名 URL

最后更新时间:2022-02-09 11:03:32

    简介

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

    说明:

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

    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);
       // 设置签名有效期为 60s,注意这里是签名有效期,您需要自行保证密钥有效期
       presignedUrlRequest.setSignKeyTime(60);
       // 设置不签名 Host
       presignedUrlRequest.addNoSignHeader("Host");
       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);
        // 设置签名有效期为 60s,注意这里是签名有效期,您需要自行保证密钥有效期
       presignedUrlRequest.setSignKeyTime(60);
       // 设置不签名 Host
       presignedUrlRequest.addNoSignHeader("Host");
        String urlWithSign = cosXmlService.getPresignedURL(presignedUrlRequest);
    } catch (CosXmlClientException e) {
       e.printStackTrace();
    }
    
    说明:

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

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持