tencent cloud

14天试用边缘安全加速平台 EO 限时免费

文档反馈

对象存储

生成预签名 URL

最后更新时间:2024-01-04 15:52:02

简介

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

SDK API 参考

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

生成对象预签名链接

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

try {
//存储桶名称
String bucket = "examplebucket-1250000000";
// 对象在存储桶中的位置标识符,对象键(Key)是对象在存储桶中的唯一标识。详情请参见 [对象键](https://intl.cloud.tencent.com/document/product/436/13324)
// 注意:用户无需对 cosPath 进行编码操作
String cosPath = "exampleobject";
//请求 HTTP 方法
String method = "PUT";
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";
// 对象在存储桶中的位置标识符,对象键(Key)是对象在存储桶中的唯一标识。详情请参见 [对象键](https://intl.cloud.tencent.com/document/product/436/13324)
// 注意:用户无需对 cosPath 进行编码操作
String cosPath = "exampleobject";
//请求 HTTP 方法.
String method = "GET";
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 电话支持
中国香港
+852 800 906 020 (免费)
美国
+1 844 606 0804 (免费)
英国
+44 808 196 4551 (免费)
加拿大
+1 888 605 7930 (免费)
澳大利亚
+61 1300 986 386 (免费)
EdgeOne 热线
+852 300 80699
更多本地服务热线陆续新增中