控制台指南

最佳实践

开发者指南

API 文档

SDK 文档

生成预签名链接

最近更新时间:2021-08-31 17:58:35

简介

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

说明:

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

SDK API 参考

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

生成对象预签名链接

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

Objective-C

QCloudGetPresignedURLRequest* getPresignedURLRequest = [[QCloudGetPresignedURLRequest alloc] init];

// 存储桶名称,格式为 BucketName-APPID
getPresignedURLRequest.bucket = @"examplebucket-1250000000";

// 使用预签名 URL 的请求的 HTTP 方法。有效值(大小写敏感)为:@"GET"、@"PUT"、@"POST"、@"DELETE"
getPresignedURLRequest.HTTPMethod = @"PUT";

// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"
getPresignedURLRequest.object = @"exampleobject";

[getPresignedURLRequest setFinishBlock:^(QCloudGetPresignedURLResult * _Nonnull result,
                                         NSError * _Nonnull error) {
    // 预签名 URL
    NSString* presignedURL = result.presienedURL;

}];

[[QCloudCOSXMLService defaultCOSXML] getPresignedURL:getPresignedURLRequest];

说明:

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

Swift

let getPresign  = QCloudGetPresignedURLRequest.init();

// 存储桶名称,格式为 BucketName-APPID
getPresign.bucket = "examplebucket-1250000000" ;

// 使用预签名 URL 的请求的 HTTP 方法。有效值(大小写敏感)为:
// @"GET"、@"PUT"、@"POST"、@"DELETE"
getPresign.httpMethod = "PUT";

// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"
getPresign.object = "exampleobject";
getPresign.setFinish { (result, error) in
    if let result = result {
        let url = result.presienedURL
    } else {
        print(error!);
    }
}
QCloudCOSXMLService.defaultCOSXML().getPresignedURL(getPresign);

说明:

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

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

Objective-C

QCloudGetPresignedURLRequest* getPresignedURLRequest = [[QCloudGetPresignedURLRequest alloc] init];

// 存储桶名称,格式为 BucketName-APPID
getPresignedURLRequest.bucket = @"examplebucket-1250000000";

// 使用预签名 URL 的请求的 HTTP 方法。有效值(大小写敏感)为:@"GET"、@"PUT"、@"POST"、@"DELETE"
getPresignedURLRequest.HTTPMethod = @"GET";

// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"
getPresignedURLRequest.object = @"exampleobject";

[getPresignedURLRequest setFinishBlock:^(QCloudGetPresignedURLResult * _Nonnull result,
                                         NSError * _Nonnull error) {
    // 预签名 URL
    NSString* presignedURL = result.presienedURL;

}];

[[QCloudCOSXMLService defaultCOSXML] getPresignedURL:getPresignedURLRequest];

说明:

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

Swift

let getPresign  = QCloudGetPresignedURLRequest.init();

// 存储桶名称,格式为 BucketName-APPID
getPresign.bucket = "examplebucket-1250000000" ;

// 使用预签名 URL 的请求的 HTTP 方法。有效值(大小写敏感)为:
// @"GET"、@"PUT"、@"POST"、@"DELETE"
getPresign.httpMethod = "GET";

// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"
getPresign.object = "exampleobject";
getPresign.setFinish { (result, error) in
    if let result = result {
        let url = result.presienedURL
    } else {
        print(error!);
    }
}
QCloudCOSXMLService.defaultCOSXML().getPresignedURL(getPresign);

说明:

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

目录