利用腾讯cos文件服务器存储图片预览及展示相关配置

事件原由:腾讯默认域名不支持图片预览,只支持下载

为保证整体服务的安全性和稳定性,2024年1月1日后创建的存储桶,若使用 COS 默认域名访问对象,任意类型文件不支持预览,apk/ipa 类型文件不支持下载。详情可参考 COS 存储桶域名使用安全管理通知

第一步:域名注册与备案

首先,用户需要准备一个已备案的自定义域名。

域名注册:您如果没有自定义域名,可前往 域名注册 购买域名。

域名备案:如果您的自定义域名用于配置到中国大陆地域的存储桶,则必须经过备案。备案流程可参考文档 首次备案操作指引(PC端)首次备案操作指引(小程序端)

第二步:为存储桶配置自定义域名

1. 准备好自定义域名后, 登录 对象存储控制台,进入存储桶列表,选择您需要配置的存储桶。

2. 进入存储桶详情页面,选择域名与传输管理 > 自定义源站域名

3. 单击添加域名,配置域名信息:

域名:输入准备好的自定义域名。

源站类型:分为以下几种。

默认源站:如果您希望将自定义域名用作默认源站,请选择默认源站。

静态网站源站:如果您希望将自定义域名用作静态网站,请先为存储桶开启静态网站功能,然后选择静态网站源站。

全球加速源站:如果您希望将自定义域名用作全球加速,请先为存储桶开启全球加速功能,然后选择全球加速源站。

注意:

添加、上线或下线域名操作,非立即生效。实际配置需要一定时间,一般在30分钟后生效,以您域名的实际访问状态为准。

4. 配置 HTTPS 证书。如果需要使用 HTTPS 协议访问,需要为自定义域名配置证书。

如果您需要使用自有证书,需要将证书内容和私钥内容粘贴到指定输入框。

如果您使用的是腾讯云申请的证书,可直接在弹窗中选择当前账号下已有的腾讯云证书。

5. 自定义域名配置完成后,记录 CNAME 一栏的信息(例如 bucket-1250000000.cos.ap-beijing.myqcloud.com),用于后续配置域名解析。

第三步:配置域名解析

腾讯云域名

如果域名 DNS 厂商是腾讯云,可以前往 云解析 DNS 控制台,为您的自定义域名配置 CNAME 解析记录。主要配置项如下:

主机记录:填写子域名。例如,添加 www.123.com 的解析,您在 “主机记录” 处选择 “www” 即可。如果只是想添加 123.com 的解析,您在 “主机记录” 处选择 “@” 即可。“@” 的 CNAME 会影响到 MX 记录的正常解析,添加时请您慎重考虑。

记录类型:选择 “CNAME”。

线路类型:选择 “默认” 类型,否则会导致部分用户无法解析。

记录值:CNAME 指向的域名,只可以填写域名。例如 bucket-1250000000.cos.ap-beijing.myqcloud.com。

具体操作指引请参见 CNAME 记录

验证解析是否生效

解析记录需要一定时间生效,可以通过 dig 命令或 对象存储控制台 查看解析是否成功更生效。验证方法如下:

在命令行窗口输入命令:dig mydomain.com,查看 CNAME 记录是否正确生效。(使用时请将mydomain.com替换为自定义域名)

这些相关配置可以参见腾讯api文档:对象存储 存储桶切换自定义域名-实践教程-文档中心-腾讯云 (tencent.com)

配置完成后,如何修改上传图片后,获取url地址的相关配置,具体代码如下:

// 1 初始化用户身份信息(secretId, secretKey)
        COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
        // 2 设置bucket的区域, COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224
        ClientConfig clientConfig = new ClientConfig(new Region(cosRegion));
        clientConfig.setHttpProtocol(HttpProtocol.https);

        //设置自定义域名
        //get service请求会使用这个域名,这个域名不能自定义
//        String serviceApiEndPoint = "cos.ap-nanjing.myqcloud.com";
        String serviceApiEndPoint = "service.cos.myqcloud.com";
        String userEndpoint = "file.test.com";   //这个就是上面配置的自定义的域名
        UserSpecifiedEndpointBuilder endpointBuilder = new UserSpecifiedEndpointBuilder(userEndpoint, serviceApiEndPoint);
        clientConfig.setEndpointBuilder(endpointBuilder);
        // 3 生成cos客户端
        COSClient cosclient = new COSClient(cred, clientConfig);

         HttpMethodName methodName = HttpMethodName.GET;

        //key是上传文件的key,expireDate是过期时间
        URL url = cosClient.generatePresignedUrl(bucketName, key, expireDate, methodName);
        return url.toString();

这样返回的url就可以浏览了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值