详情页标题前

腾讯云对象存储自定义域名上传下载对象

详情页1

简介

本文主要介绍如何使用自定义域名上传和下载对象,本文示例中使用了上传和下载对象的高级接口,接口详细信息可参见 Java SDK 上传对象Java SDK 下载对象在使用自定义域名上传和下载对象之前,首先需要为存储桶设置自定义源站域名,详情请参见 开启自定义源站域名 的方式来设置自定义源站域名。

通过自定义域名上传对象

方法原型

// UserSpecifiedEndpointBuilder 构造函数com.qcloud.cos.endpoint.UserSpecifiedEndpointBuilder(String generalApiEndpoint, String getServiceApiEndpoint);

请求示例

import java.io.File;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import com.qcloud.cos.COSClient;import com.qcloud.cos.ClientConfig;import com.qcloud.cos.auth.BasicCOSCredentials;import com.qcloud.cos.auth.COSCredentials;import com.qcloud.cos.endpoint.UserSpecifiedEndpointBuilder;import com.qcloud.cos.exception.CosClientException;import com.qcloud.cos.exception.CosServiceException;import com.qcloud.cos.http.HttpProtocol;import com.qcloud.cos.model.PutObjectRequest;import com.qcloud.cos.model.UploadResult;import com.qcloud.cos.region.Region;import com.qcloud.cos.transfer.TransferManager;import com.qcloud.cos.transfer.Upload;
public static void uploadFile() { // 1 初始化用户身份信息 (secretId, secretKey) // SECRETID 和 SECRETKEY 请登录访问管理控制台 https://console.cloud.tencent.com/cam/capi 进行查看和管理 String secretId = System.getenv("secretId");//用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140 String secretKey = System.getenv("secretKey");//用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140 COSCredentials cred = new BasicCOSCredentials(secretId, secretKey); // 2 设置 bucket 的地域, COS_REGION 请参见 https://www.qcloud.com/document/product/436/6224 ClientConfig clientConfig = new ClientConfig(new Region("COS_REGION")); // 设置请求协议,推荐使用 https 协议 clientConfig.setHttpProtocol(HttpProtocol.https); //若设置自定义源站域名时未上传 https 证书,则改为 clientConfig.setHttpProtocol(HttpProtocol.http); // 设置自定义的域名 UserSpecifiedEndpointBuilder endpointBuilder = new UserSpecifiedEndpointBuilder("generalApiEndpoint", "getServiceApiEndpoint"); clientConfig.setEndpointBuilder(endpointBuilder); // 3 生成 cos 客户端 COSClient cosclient = new COSClient(cred, clientConfig); // bucket 名需包含 appid String bucketName = "BucketName-APPID";
ExecutorService threadPool = Executors.newFixedThreadPool(32); // 传入一个 threadpool, 若不传入线程池, 默认 TransferManager 中会生成一个单线程的线程池。 TransferManager transferManager = new TransferManager(cosclient, threadPool); // 设置对象的 key String key = "exampleobject"; // 本地文件路径 File localFile = new File("/path/to/localFile");
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile); try { // 返回一个异步结果 Upload , 可同步的调用 waitForUploadResult 等待 upload 结束, 成功返回 UploadResult , 失败抛出异常. Upload upload = transferManager.upload(putObjectRequest); UploadResult uploadResult = upload.waitForUploadResult(); System.out.printf("RequestId : %s\n",uploadResult.getRequestId()); System.out.println(uploadResult.getETag()); System.out.println(uploadResult.getCrc64Ecma()); } catch (CosServiceException e) { e.printStackTrace(); } catch (CosClientException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); }
transferManager.shutdownNow();}
参数说明
参数名 描述 类型
generalApiEndpoint 自定义源站域名 String
getServiceApiEndpoint 代表列举存储桶列表时的域名,推荐填 service.cos.myqcloud.com String

通过自定义域名下载对象

方法原型

// UserSpecifiedEndpointBuilder 构造函数com.qcloud.cos.endpoint.UserSpecifiedEndpointBuilder(String generalApiEndpoint, String getServiceApiEndpoint);

请求示例

import java.io.File;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import com.qcloud.cos.COSClient;import com.qcloud.cos.ClientConfig;import com.qcloud.cos.auth.BasicCOSCredentials;import com.qcloud.cos.auth.COSCredentials;import com.qcloud.cos.endpoint.UserSpecifiedEndpointBuilder;import com.qcloud.cos.exception.CosClientException;import com.qcloud.cos.exception.CosServiceException;import com.qcloud.cos.http.HttpProtocol;import com.qcloud.cos.model.GetObjectRequest;import com.qcloud.cos.region.Region;import com.qcloud.cos.transfer.Download;import com.qcloud.cos.transfer.TransferManager;
public static void downLoadFile() { // 1 初始化用户身份信息(secretId, secretKey) COSCredentials cred = new BasicCOSCredentials("secretId", "secretKey"); // 2 设置 bucket 的地域, COS_REGION 请参见 https://www.qcloud.com/document/product/436/6224 ClientConfig clientConfig = new ClientConfig(new Region("COS_REGION")); // 设置请求协议,推荐使用 https 协议 clientConfig.setHttpProtocol(HttpProtocol.https); //若设置自定义源站域名时未上传 https 证书,则改为 clientConfig.setHttpProtocol(HttpProtocol.http); // 设置自定义的域名 UserSpecifiedEndpointBuilder endpointBuilder = new UserSpecifiedEndpointBuilder("generalApiEndpoint", "getServiceApiEndpoint"); clientConfig.setEndpointBuilder(endpointBuilder); // 3 生成 cos 客户端 COSClient cosclient = new COSClient(cred, clientConfig); // bucket 名需包含 appid String bucketName = "BucketName-APPID";
ExecutorService threadPool = Executors.newFixedThreadPool(32); // 传入一个 threadpool, 若不传入线程池, 默认 TransferManager 中会生成一个单线程的线程池。 TransferManager transferManager = new TransferManager(cosclient, threadPool); // 设置对象的 key String key = "exampleobject"; // 本地文件路径 File downloadFile = new File("/path/to/localFile"); GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key); try { // 返回一个异步结果 download, 可同步的调用 waitForCompletion 等待 download 结束, 成功返回 void , 失败抛出异常. Download download = transferManager.download(getObjectRequest, downloadFile); download.waitForCompletion(); System.out.printf("RequestId : %s\n",download.getObjectMetadata().getRequestId()); } catch (CosServiceException e) { e.printStackTrace(); } catch (CosClientException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); }
transferManager.shutdownNow();}
参数说明
参数名 描述 类型
generalApiEndpoint 自定义源站域名 String
getServiceApiEndpoint 代表列举存储桶列表时的域名,推荐填 service.cos.myqcloud.com String



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

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

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

相关推荐

  • 腾讯云负载均衡策略示例

    所有 CLB 的全读写策略 授权一个子账户以 CLB 服务的完全管理权限(创建、管理等全部操作)。策略名称:CLBResourceFullAccess { “version”: “2.0”, “statement”: [{ “action”: [ “name/clb:*” ], “resource”: “*”, “effect”: “allow” }]} 所…

    腾讯云 2023年12月9日
  • 腾讯云云函数(SCF)部署流式转码应用-云淘科技

    应用简介 通过使用 COS + 云函数 + CLS + FFmpeg,您可以快速构建高可用、并行处理、实时日志、高度自定义的视频转码服务。 架构原理 通过云函数创建 FFmpeg 任务进程,云函数进程与 FFmpeg 任务进程通过 pipe 和 FIFO 的方式进行数据传输。云函数进程中的两个任务线程分别接收 FFmpeg 任务进程向函数进程输出的 FFmp…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLS采集MySQL Binlog-云淘科技

    本文介绍通过Logtail采集MySQL Binlog的操作步骤。 重要 日志服务不再推荐您新建Logtail配置采集MySQL Binlog。您可以使用DataWorks或Flink进行采集。具体操作,请参见MySQL、MySQL数据源。 原理 Logtail内部实现了MySQL Slave节点的交互协议,具体流程如下所示。 Logtail将自己伪装为My…

    2023年12月10日
  • 腾讯云TDSQL-C MySQL版切换数据库代理网络

    本文为您介绍如何通过 TDSQL-C MySQL 版控制台修改数据库代理的网络。 前提条件 已 开通数据库代理。 注意事项 更换网络会导致该实例数据库代理 IP 变化,IP 默认保留24小时,最长保留时间支持设置168小时,旧的访问 IP 会失效,请及时修改客户端程序。若旧 IP 地址的回收时间设置为0小时,更换网络后会立即回收旧 IP 地址。只能选择 TD…

    2023年12月9日
  • 腾讯云对象存储媒体 bucket 接口

    简介 本文档提供关于媒体 bucket 接口的 API 概览和 SDK 示例代码。 API 操作名 操作描述 DescribeMediaBuckets 查询媒体处理开通情况 用于查询已经开通媒体处理功能的存储桶 SDK API 参考 SDK 所有接口的具体参数与方法说明,请参考 SDK API。 查询媒体处理开通情况 功能说明 DescribeMediaBu…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

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