详情页标题前

腾讯云对象存储生成预签名链接

详情页1

简介

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

SDK API 参考

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

生成对象预签名链接

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

Objective-C1.生成用于上传的签名URL

QCloudGetPresignedURLRequest* getPresignedURLRequest = [[QCloudGetPresignedURLRequest alloc] init];
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucketgetPresignedURLRequest.bucket = @"examplebucket-1250000000";
// 使用预签名 URL 请求的 HTTP 方法。有效值(大小写敏感)为:@"GET"、@"PUT"、@"POST"、@"DELETE"getPresignedURLRequest.HTTPMethod = @"PUT";
// 获取预签名函数,默认签入Header Host;您也可以选择不签入Header Host,但可能导致请求失败或安全漏洞getPresignedURLRequest.signHost = YES;
// http 请求参数,传入的请求参数需与实际请求相同,能够防止用户篡改此HTTP请求的参数getPresignedURLRequest.requestParameters = @{@"param1":@"value1",@"param1":@"value1"};
// http 请求头部,传入的请求头部需包含在实际请求中,能够防止用户篡改签入此处的HTTP请求头部getPresignedURLRequest.requestHeaders = @{@"param1":@"value1",@"param1":@"value1"};
// 对象键,是对象在 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];
2.通过签名URL上传文件。
// 预签名 URLNSString* presignedURL = result.presienedURL;// 使用预签名链接进行上传文件NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:result.presienedURL]];// 指定HTTPMethod 为PUTrequest.HTTPMethod = @"PUT";// fromData 为需要上传的文件[[[NSURLSession sharedSession]uploadTaskWithRequest:request fromData:[@"testtest" dataUsingEncoding:NSUTF8StringEncoding] completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {// response中查看上传结果}]resume];

说明 更多完整示例,请前往 GitHub 查看。Swift1.生成用于上传的签名URL

let getPresign  = QCloudGetPresignedURLRequest.init();
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucketgetPresign.bucket = "examplebucket-1250000000" ;
// 使用预签名 URL 请求的 HTTP 方法。有效值(大小写敏感)为:// @"GET"、@"PUT"、@"POST"、@"DELETE"getPresign.httpMethod = "PUT";
// 获取预签名函数,默认签入Header Host;您也可以选择不签入Header Host,但可能导致请求失败或安全漏洞getPresign.signHost = YES;
// http 请求参数,传入的请求参数需与实际请求相同,能够防止用户篡改此HTTP请求的参数getPresign.requestParameters = {"param1":"value1","param1":"value1"};
// http 请求头部,传入的请求头部需包含在实际请求中,能够防止用户篡改签入此处的HTTP请求头部getPresign.requestHeaders = {"param1":"value1","param1":"value1"};
// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"getPresign.object = "exampleobject";getPresign.setFinish { (result, error) in if let result = result { // 预签名 URL let url = result.presienedURL } else { print(error!); }}QCloudCOSXMLService.defaultCOSXML().getPresignedURL(getPresign);
2.通过签名URL上传文件。
// 预签名 URLlet url = result.presienedURL// 使用预签名链接进行上传文件let request = NSMutableURLRequest.init(url: NSURL.init(string:url) as! URL);// 指定HTTPMethod 为PUTrequest.httpMethod = "PUT";// fromData 为需要上传的文件URLSession.shared.uploadTask(with: request, from:  "testtest".data(using: String.Encoding.utf8)) { data, res, err in// response中查看上传结果}.resume()

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

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

Objective-C

1.生成用于下载的签名URL。
QCloudGetPresignedURLRequest* getPresignedURLRequest = [[QCloudGetPresignedURLRequest alloc] init];
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucketgetPresignedURLRequest.bucket = @"examplebucket-1250000000";
// 使用预签名 URL 请求的 HTTP 方法。有效值(大小写敏感)为:@"GET"、@"PUT"、@"POST"、@"DELETE"getPresignedURLRequest.HTTPMethod = @"GET";
// 获取预签名函数,默认签入Header Host;您也可以选择不签入Header Host,但可能导致请求失败或安全漏洞getPresignedURLRequest.signHost = YES;
// http 请求参数,传入的请求参数需与实际请求相同,能够防止用户篡改此HTTP请求的参数getPresignedURLRequest.requestParameters = @{@"param1":@"value1",@"param1":@"value1"};
// http 请求头部,传入的请求头部需包含在实际请求中,能够防止用户篡改签入此处的HTTP请求头部getPresignedURLRequest.requestHeaders = @{@"param1":@"value1",@"param1":@"value1"};
// 对象键,是对象在 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];
2.通过签名URL下载文件。
// 预签名 URLNSString* presignedURL = result.presienedURL;// 使用预签名链接进行下载文件NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:presignedURL]];// 指定HTTPMethod为GETrequest.HTTPMethod = @"GET";[[[NSURLSession sharedSession]downloadTaskWithRequest:requestcompletionHandler:^(NSURL *_Nullable location, NSURLResponse *_Nullable response, NSError *_Nullable error) {// location 下载成功后的本地文件路径}] resume];

说明 更多完整示例,请前往 GitHub 查看。Swift1.生成用于下载的签名URL。

let getPresign  = QCloudGetPresignedURLRequest.init();
// 存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucketgetPresign.bucket = "examplebucket-1250000000" ;
// 使用预签名 URL 请求的 HTTP 方法。有效值(大小写敏感)为:// @"GET"、@"PUT"、@"POST"、@"DELETE"getPresign.httpMethod = "GET";
// 获取预签名函数,默认签入Header Host;您也可以选择不签入Header Host,但可能导致请求失败或安全漏洞getPresignedURLRequest.signHost = YES;
// http 请求参数,传入的请求参数需与实际请求相同,能够防止用户篡改此HTTP请求的参数getPresignedURLRequest.requestParameters = {"param1":"value1","param1":"value1"};
// http 请求头部,传入的请求头部需包含在实际请求中,能够防止用户篡改签入此处的HTTP请求头部getPresignedURLRequest.requestHeaders = {"param1":"value1","param1":"value1"};
// 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "video/xxx/movie.mp4"getPresign.object = "exampleobject";getPresign.setFinish { (result, error) in if let result = result { // 预签名 URL let url = result.presienedURL; } else { print(error!); }}QCloudCOSXMLService.defaultCOSXML().getPresignedURL(getPresign);
2.通过签名URL下载文件。
// 预签名 URLlet url = result.presienedURL// 使用预签名链接进行下载文件let request = NSMutableURLRequest.init(url: NSURL.init(string: url) as! URL);// 指定HTTPMethod为GETrequest.httpMethod = "GET";URLSession.shared.downloadTask(with: request) { location, response, error in// location 下载成功后的本地文件路径}.resume();

说明 更多完整示例,请前往 GitHub 查看。
对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/145661.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 阿里云RDS数据库RDS MySQL只读实例同步延迟原因与处理-云淘科技

    本文介绍常见的RDS MySQL只读实例延迟时间变长的原因及解决方案。 问题描述 由于阿里云云数据库RDS只读实例采用MySQL原生的基于日志复制技术(异步复制或半异步复制),必然会有同步延迟。延迟会导致只读实例与主实例的数据出现不一致,从而导致业务出现问题。另外,延迟也有可能引起日志堆积,导致只读实例空间被迅速消耗。 说明 若主实例正产生大量的日志,有可能…

    2023年12月9日
  • 腾讯云对象存储图片标签

    简介 本文档提供关于图片标签相关的 API 概览以及 SDK 示例代码。 API 说明 图片标签 图片标签功能通过借助持久化处理接口,实现对对象存储(Cloud Object Storage,COS)存量数据的图片标签识别。 图片标签 功能说明 图片标签功能通过借助对象存储的持久化处理接口,实现对 COS 存量数据的图片标签识别,返回图片中置信度较高的主题标…

    腾讯云 2023年12月9日
  • 腾讯云对象存储获取私有M3U8

    功能描述 GetPrivateM3U8 接口用于获取私有 M3U8 ts 资源的下载授权。(此方式通过对象存储转发请求至数据万象)。 授权说明 授权策略中 action 设置为 ci:GetPrivateM3U8 。查看所有 action。 服务开通 使用该功能需提前开通数据万象,并绑定存储桶。详情请参见 绑定存储桶。 使用限制 使用该接口时,请先确认相关限…

    腾讯云 2023年12月9日
  • 腾讯云对象存储恢复归档对象

    简介 本文档提供关于恢复归档对象操作相关的 API 概览以及 SDK 示例代码。 API 操作名 操作描述 POST Object restore 恢复归档对象 将归档类型的对象取回访问 SDK API 参考 SDK 所有接口的具体参数与方法说明,请参考 SDK API。 恢复归档对象 功能说明 将归档类型的对象取回访问(POST Object restor…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云计算加速套件TACO Kit购买指南

    计费说明 计算加速套件 TACO Kit 不独立计费,在使用产品的过程中,您需为执行计算任务过程中使用的云资源付费,具体信息可参见 云服务器计费概述、文件存储计费概述、对象存储计费概述。 使用方式 TACO Train AI 训练加速引擎目前已经开放使用,您可参见 TACO Train AI 加速引擎 了解相关安装流程及使用方法。TACO Infer AI …

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。