使用 AWS S3 SDK 访问 COS-腾讯云国际站代充
腾讯云国际站对象存储(Cloud Object Storage,COS)提供了 AWS S3 兼容的 API,因此当用户的数据从 S3 迁移到 COS 之后,只需要进行简单的配置修改,即可让客户端应用轻松兼容 COS 服务。下面unirech小编主要介绍不同开发平台的 S3 SDK 的适配步骤。在完成添加适配步骤后,就可以使用 S3 SDK 的接口来访问 COS 上的文件了。
准备工作
1.已关联unirech注册腾讯云国际站账号,关联注册量大优惠且可以有多重优势,无-需-绑-定PayPal,代-充-值腾讯云国际站、阿里云国际站、AWS亚马逊云、GCP谷歌云,官方授权经销商!靠谱!T-G 飞机 @unirech_dingding
并且从访问管理控制台上获取了腾讯云密钥 SecretID 与 SecretKey。
2.已有一个集成了 S3 SDK,并能正常运行的客户端应用。
本文目录
- Android
- iOS
- Node.js
- Java
- Python
- PHP
- .NET
- Go
- C++
Android
下面以 AWS Android SDK 2.14.2 版本为例,介绍如何适配以便访问 COS 服务。对于终端访问 COS,将永久密钥放到客户端代码中有极大的泄露风险,我们建议您接入 STS 服务获取临时密钥,详情可以参加腾讯云国际站的临时密钥生成及使用指引。
初始化
初始化实例时,您需要设置临时密钥提供者和 Endpoint,以存储桶所在地域是ap-guangzhou
为例:
AmazonS3Client s3 = new AmazonS3Client(new AWSCredentialsProvider() {@Overridepublic AWSCredentials getCredentials() {// 这里后台请求 STS 得到临时密钥信息return new BasicSessionCredentials("<TempSecretID>", "<TempSecretKey>", "<STSSessionToken>");}@Overridepublic void refresh() {//}
});
s3.setEndpoint("cos.ap-guangzhou.myqcloud.com");
iOS
以 AWS iOS SDK 2.10.2 版本为例,介绍如何适配以便访问 COS 服务。对于终端访问 COS,将永久密钥放到客户端代码中有极大的泄露风险,我们建议您接入 STS 服务获取临时密钥,详情可以参加腾讯云国际站的临时密钥生成及使用指引。
1. 实现 AWSCredentialsProvider 协议
-(AWSTask<AWSCredentials *> *)credentials{
// 这里后台请求 STS 得到临时密钥信息AWSCredentials *credential = [[AWSCredentials alloc]initWithAccessKey:@"<TempSecretID>" secretKey:@"<TempSecretKey>" sessionKey:@"<STSSessionToken>" expiration:[NSDate dateWithTimeIntervalSince1970:1565770577]];return [AWSTask taskWithResult:credential];}
- (void)invalidateCachedTemporaryCredentials{}
2. 提供临时密钥提供者和 Endpoint
以存储桶所在地域是ap-guangzhou
为例:
NSURL* bucketURL = [NSURL URLWithString:@"http://cos.ap-guangzhou.myqcloud.com"];AWSEndpoint* endpoint = [[AWSEndpoint alloc] initWithRegion:AWSRegionUnknown service:AWSServiceS3 URL:bucketURL];
AWSServiceConfiguration* configuration = [[AWSServiceConfiguration alloc]
initWithRegion:AWSRegionUSEast2 endpoint:endpoint
credentialsProvider:[MyCredentialProvider new]]; // MyCredentialProvider 实现了 AWSCredentialsProvider 协议[[AWSServiceManager defaultServiceManager] setDefaultServiceConfiguration:configuration];
Node.js
下面以 AWS JS SDK 2.509.0 版本为例,介绍如何适配以便访问 COS 服务。
初始化
初始化实例时设置腾讯云密钥和 Endpoint,以存储桶所在地域是ap-guangzhou
为例,代码示例如下:
var AWS = require('aws-sdk');
AWS.config.update({accessKeyId: "COS_SECRETID",secretAccessKey: "COS_SECRETKEY",region: "ap-guangzhou",endpoint: 'https://cos.ap-guangzhou.myqcloud.com',
});
s3 = new AWS.S3({apiVersion: '2006-03-01'});
Java
下面以 AWS Java SDK 1.11.609 版本为例,介绍如何适配以便访问 COS 服务。
1. 修改 AWS 配置和证书文件
说明:
下面以 Linux 为例,修改 AWS 配置和证书文件。
AWS SDK 的默认配置文件通常在用户目录下,可以参考 配置和证书文件。
- 在配置文件(文件位置是
~/.aws/config
)中添加以下配置信息:
[default]
s3 =
addressing_style = virtual
- 在证书文件(文件位置是
~/.aws/credentials
)中配置腾讯云的密钥:
[default]
aws_access_key_id = [COS_SECRETID]
aws_secret_access_key = [COS_SECRETKEY]
2. 代码中设置 Endpoint
以存储桶所在地域是ap-guangzhou
为例,代码示例如下:
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("http://cos.ap-guangzhou.myqcloud.com", "ap-guangzhou")).build();
Python
下面以 AWS Python SDK 1.9.205 版本为例,介绍如何适配以便访问 COS 服务。
1. 修改 AWS 配置和证书文件
下面以 Linux 为例,修改 AWS 配置和证书文件。
AWS SDK 的默认配置文件通常在用户目录下,可以参考 配置和证书文件。
在配置文件(文件位置是~/.aws/config
) 中添加以下配置:
[default]
s3 =
signature_version = s3
addressing_style = virtual
在证书文件(文件位置是~/.aws/credentials
)中配置腾讯云的密钥:
[default]
aws_access_key_id = [COS_SECRETID]
aws_secret_access_key = [COS_SECRETKEY]
2. 代码中设置 Endpoint
以存储桶所在地域是ap-guangzhou
为例:
client = boto3.client('s3', endpoint_url='https://cos.ap-guangzhou.myqcloud.com')
PHP
下面以 AWS PHP SDK 3.109.3 版本为例,介绍如何适配以便访问 COS 服务。
1. 修改 AWS 配置和证书文件
下面以 Linux 为例,修改 AWS 配置和证书文件。
AWS SDK 的默认配置文件通常在用户目录下,可以参考 配置和证书文件。
在配置文件(文件位置是~/.aws/config
) 中添加以下配置:
[default]
s3 =
addressing_style = virtual
在证书文件(文件位置是~/.aws/credentials
)中配置腾讯云的密钥:
[default]
aws_access_key_id = [COS_SECRETID]
aws_secret_access_key = [COS_SECRETKEY]
2. 代码中设置 Endpoint
以存储桶所在地域是ap-guangzhou
为例:
$S3Client = new S3Client(['region' => 'ap-guangzhou','version' => '2006-03-01','endpoint' => 'https://cos.ap-guangzhou.myqcloud.com'
]);
.NET
下面以 AWS .NET SDK 3.3.104.12 版本为例,介绍如何适配以便访问 COS 服务。
初始化
初始化实例时设置腾讯云密钥和 Endpoint,以存储桶所在地域是ap-guangzhou
为例:
string sAccessKeyId = "COS_SECRETID";
string sAccessKeySecret = "COS_SECRETKEY";
string region = "ap-guangzhou";var config = new AmazonS3Config() { ServiceURL = "https://cos." + region + ".myqcloud.com" };
var client = new AmazonS3Client(sAccessKeyId, sAccessKeySecret, config);
Go
下面以 AWS Go SDK 1.21.9 版本为例,介绍如何适配以便访问 COS 服务。
1. 根据密钥创建 session
以存储桶所在地域是ap-guangzhou
为例:
func newSession() (*session.Session, error) {
creds := credentials.NewStaticCredentials("COS_SECRETID", "COS_SECRETKEY", "")
region := "ap-guangzhou"
endpoint := "http://cos.ap-guangzhou.myqcloud.com"
config := &aws.Config{Region: aws.String(region),Endpoint: &endpoint,S3ForcePathStyle: aws.Bool(true),Credentials: creds,// DisableSSL: &disableSSL,
}
return session.NewSession(config)
}
2. 根据 session 创建 server 发起请求
sess, _ := newSession()
service := s3.New(sess)
// 以上传文件为例
fp, _ := os.Open("yourLocalFilePath")
defer fp.Close()
ctx, cancel := context.WithTimeout(context.Background(), time.Duration(30)*time.Second)
defer cancel()
service.PutObjectWithContext(ctx, &s3.PutObjectInput{
Bucket: aws.String("examplebucket-1250000000"),
Key: aws.String("exampleobject"),
Body: fp,
})
C++
下面以 AWS C++ SDK 1.7.68 版本为例,介绍如何适配以便访问 COS 服务。
1. 修改 AWS 配置和证书文件
下面以 Linux 为例,修改 AWS 配置和证书文件。
AWS SDK 的默认配置文件通常在用户目录下,可以参考 配置和证书文件。
在配置文件(文件位置是~/.aws/config
) 中添加以下配置:
[default]
s3 =
addressing_style = virtual
在证书文件(文件位置是~/.aws/credentials
)中配置腾讯云的密钥:
[default]
aws_access_key_id = [COS_SECRETID]
aws_secret_access_key = [COS_SECRETKEY]
2. 代码中设置 Endpoint
以存储桶所在地域是ap-guangzhou
为例,代码示例如下:
Aws::Client::ClientConfiguration awsCC;
awsCC.scheme = Aws::Http::Scheme::HTTP;
awsCC.region = "ap-guangzhou";
awsCC.endpointOverride = "cos.ap-guangzhou.myqcloud.com";
Aws::S3::S3Client s3_client(awsCC);
相关文章:
使用 AWS S3 SDK 访问 COS-腾讯云国际站代充
腾讯云国际站对象存储(Cloud Object Storage,COS)提供了 AWS S3 兼容的 API,因此当用户的数据从 S3 迁移到 COS 之后,只需要进行简单的配置修改,即可让客户端应用轻松兼容 COS 服务。下面unirech小编主要介…...
c语言每日一练(15)
前言:每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,上学期间将看学业情况更新。 五道选择题: 1、程序运行的结果…...
如何利用软文推广进行SEO优化(打造优质软文,提升网站排名)
在当今的互联网时代,SEO优化成为了网站推广的关键。而软文推广作为一种有效的推广方式,其优点不仅仅局限于SEO,还可以带来更多的曝光和用户流量。本文将深入探讨如何做好软文推广,从而提升网站排名和流量。 了解目标受众群体 内容…...
Java线程池ExecutorService和Executors应用(Spring Boot微服务)
记录:476 场景:在Spring Boot微服务中使用ExecutorService管理Java线程池。使用Executors创建线程池。使用Runnable接口实现类提交线程任务到线程池执行。 版本:JDK 1.8,Spring Boot 2.6.3。 1.线程和线程池基础 JDK自带线程和线程池包位…...
机器学习笔记之最优化理论与方法(八)无约束优化问题——常用求解方法(中)
机器学习笔记之最优化理论与方法——基于无约束优化问题的常用求解方法[中] 引言回顾:最速下降算法的缺陷经典牛顿法基本介绍经典牛顿法的问题经典牛顿法的优点与缺陷经典牛顿法示例 修正牛顿法介绍拟牛顿法拟牛顿法的算法过程 矩阵 B k 1 \mathcal B_{k1} Bk1的…...
Django系列:Django简介与MTV架构体系概述
Django系列 Django简介与MTV架构体系概述 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/132890054 【介…...
锐捷交换机WEB管理系统EXCU_SHELL密码信息泄漏漏洞
一、漏洞简介 锐捷交换机 WEB 管理系统 EXCU_SHELL存在密码信息泄露漏洞,攻击者可从漏洞获取到管理员账号密码,从而以管理员权限登录。 二、影响版本 锐捷交换机 WEB 管理系统 三、资产测绘 hunterweb.body"img/free_login_ge.gif"&&…...
线性代数(六) 线性变换
前言 《线性空间》定义了空间,这章节来研究空间与空间的关联性 函数 函数是一个规则或映射,将一个集合中的每个元素(称为自变量)映射到另一个集合中的唯一元素(称为因变量)。 一般函数从 “A” 的每个元…...
Python基础运算分享
Python的运算符和其他语言类似 (我们暂时只了解这些运算符的基本用法,方便我们展开后面的内容,高级应用暂时不介绍) 数学运算 >>>print 19 # 加法>>>print 1.3-4 # 减法>>>print 3*5 …...
【MySQL】mysql中有哪几种类型的备份技术?它们各自有什么优缺点?
为什么要备份?备份类型(从类型的角度)备份技术(从技术手段的角度)不同备份方法的比较感谢 💖 为什么要备份? 数据库或它所在的平台可能会出现问题,这时候数据库中的数据可能就遭到了…...
5基于pytorch的多目标粒子群算法,MOPSO,引导种群逼近真实Pareto前沿,算法运行结束后将外部存档中粒子作为获得的Pareto最优解近似。
基于pytorch的多目标粒子群算法,MOPSO,引导种群逼近真实Pareto前沿,算法运行结束后将外部存档中粒子作为获得的Pareto最优解近似。程序已调通,可以直接运行。 5pytorch多目标粒子群算法最优解5pytorch多目标粒子群算法最优解 (xiaohongshu.co…...
002 Linux 权限
前言 本文将会向您介绍关于linux权限方面的内容,包括文件类型,如何切换用户、基本权限、粘滞位等等 Linux具体的用户 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的…...
【Java 基础篇】Java可变参数:灵活处理不定数量的方法参数
在Java编程中,可变参数是一项强大的功能,它允许你编写更加灵活的方法,接受不定数量的参数。本文将详细解释Java可变参数的用法、语法以及最佳实践。 什么是可变参数? 可变参数是Java 5引入的一项功能,它允许你在方法…...
“网站建设流程详解:从概念到上线的每个细节“
以下是网站建设流程的详细步骤,从概念到上线的每个细节: 确定网站目标和定位:明确网站的主题和目标,根据目标受众和市场定位来决定网站的内容和设计风格。考虑网站的目的、目标受众、行业或领域等方面,以及网站的定位…...
DC/DC开关电源学习笔记(七)低压大电流DC/DC变换技术
低压大电流DC/DC变换技术 1. 无暂态要求的低压大电流DC/DC变换技术2. 负载极其快速变化的低压大电流DC/DC变换技术2.1 非隔离型 VRM2.2 隔离型VRM低压大电流高功率 DC/DC 变换技术,已从前些年的 3.3V 降至现在的 1.0V 左右,电流目前已可达到几十安至几百安。同时,电源的输出指标…...
XUbuntu22.04之查找进程号pidof、pgrep总结(一百九十)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...
BI与数据治理以及数据仓库有什么区别
你可能已经听说过BI、数据治理和数据仓库这些术语,它们在现代企业中起着重要的作用。虽然它们都与数据相关,但它们之间有着明显的区别和各自独特的功能。数聚将详细探讨BI(商业智能)、数据治理和数据仓库之间的区别,帮…...
java---jar详解
一、help C:\Users\lichf1>jar 用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ... 选项:-c 创建新档案-t 列出档案目录-x 从档案中提取指定的 (或所有) 文件-u 更新现有档案-v 在标准输出中生成详细输出-f 指定档案文件名-m…...
uni-app 新增 微信小程序之新版隐私协议
一、manifest.json中配置 "__usePrivacyCheck__": true 二、编写封装后的组件 <template><view class"privacy" v-if"showPrivacy"><view class"content"><view class"title">隐私保护指引</…...
nbcio-boot移植到若依ruoyi-nbcio平台里一formdesigner部分(四)
到目前为止,虽然基础的formdesigner部分已经完成,但流程用formdesigner提交与审批过程中的显示还有问题。 1、后端部分 其中FormConf修改如下: package com.ruoyi.flowable.core;import lombok.Data;import java.util.List; import java.uti…...
公交查询系统
目录 需求分析 1 概述 2 课题分析 3 实现功能步骤 4 项目背景 概要设计 1 系统流程图. 2 功能模块. 3 各功能模块 4 数据存储 5 类设计 三、详细设计 1公交线路查询系统用户界面 2公交信息存储模快 3公交信息查询模块 4用户信息输入和输出模块 四、调试分析 五、使用说明 六、…...
opencv 轮廓顶点重新排序----四边形
def reorder(myPoints):# print(myPoints.shape)# 创建一个与myPoints具有相同形状和类型的数组myPointsNew np.zeros_like(myPoints)# 数组重塑为一个4行2列的数组myPoints myPoints.reshape((4,2))# 计算myPoints数组中每一行(即每个点)的坐标和add …...
【项目实战】【已开源】USB2.0 HUB 集线器的制作教程(详细步骤以及电路图解释)
写在前面 本文是一篇关于 USB2.0 HUB 集线器的制作教程,包括详细的步骤以及电路图解释。 本文记录了笔者制作 USB2.0 HUB 集线器的心路历程,希望对你有帮助。 本文以笔记形式呈现,通过搜集互联网多方资料写成,非盈利性质…...
分布式运用之rsync远程同步
一、rsync的相关知识 1.1 rsync简介 rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法&am…...
誉天在线项目~ElementPlus实现浏览页面注意点
浏览按钮 点击浏览按钮,传递列表数据索引值。 根据索引值从列表数据数组中获取当前行数据。 <el-button click"toView(scope.$index)" type"success" size"small"><el-icon><EditPen /></el-icon> 浏览<…...
神经网络-pytorch版本
pytorch神经网络基础 torch简介 torch和numpy import torch import numpy as np np_datanp.arange(6).reshape((2,3)) torch_datatorch.from_numpy(np_data) tensor2arraytorch_data.numpy() print(np_data,"\n",torch_data,"\n",tensor2array)torch的数…...
uniapp vue 页面传参问题encodeURIComponent
页面传参objet json序列化后可能会报错 Uncaught SyntaxError: missing ) after argument list 但不一定是数据有问题,而是json成字符串后,字符串中有特殊字符,所以导致parse的时候格式不对。所以解决方案如下 如果传递参数为对象的时候&…...
【GDAL】tif影像拼接和目标截取
原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 文章目录 一、gdal.Warp拼接tif二、截取1.通过经纬范围截取拼接的影像2.通过shp范围截取凭借后影像 三、WarpOptions其他参数四、其他方式裁剪1.通过sh…...
ARM核心时间线
指令集架构处理器家族(ARM RISC)ARMv1ARM1ARMv2ARM2、ARM3ARMv3ARM6、ARM7ARMv4StrongARM、ARM7TDMI、ARM9TDMIARMv5ARM7EJ、ARM9E、ARM10E、XScaleARMv6ARM11、ARM Cortex-MARMv7ARM Cortex-A、ARM Cortex-M、ARM Cortex-RARMv8-A armv8.2Cortex-A35、Cortex-A50系列[18]、Cor…...
【Redis】深入探索 Redis 的数据类型 —— 列表 List
文章目录 一、List 类型介绍二、List 类型相关命令2.1 LPUSH 和 RPUSH、LPUSHX 和 RPUSHX2.2 LPOP 和 RPOP、BLPOP 和 BRPOP2.3 LRANGE、LINDEX、LINSERT、LLEN2.4 列表相关命令总结 三、List 类型内部编码3.1 压缩列表(ziplist)3.2 链表(lin…...
网络班级网站建设/杭州优化公司多少钱
Eclipse 安装(Neon 版本) Eclipse 最新版本 Eclipse Neon,这个首次鼓励用户使用 Eclipse Installer 来做安装,这是一种由Eclipse Oomph提供的新技术,它通过提供一个很小的安装器来使得各种工具可以按需下载和安装。 需要框架源码的朋友可以…...
电子商务网站建设与管理实训总结/百度站内搜索的方法
收到一位读者的私信,说字节面试有这么一个问题:服务端挂了,客户端的 TCP 连接会发生什么?如果「服务端挂掉」指的是「服务端进程崩溃」,那么这个读者猜的想法是对的,服务端的进程在发生崩溃的时候ÿ…...
广州网站搭建/关键词组合工具
1、无论在mysql中执行什么语句,都会报以下错误:You must reset your password using ALTER USER statement before executing this statement.在网上找了一下原因,看到以下信息这就是因为数据库的这个默认的default_password_lifetime参数导致…...
李可做的网站/app开发教程
SVG 可缩放矢量图形(Scalable Vector Graphics) demo 存在形式: SVG 是使用 XML 来描述二维图形和绘图程序的语言 在html中的引入方式 1、<embed src"helloworld.svg" />2、<object data"rect.svg" width"…...
做动态网站难么/广告竞价排名
一、电脑主板架构1.概念:主板是连接各组件的重要部分。主板上连接各部分组件的芯片组,其设计优劣,会影响电脑的性能2.芯片组①早期芯片组:早期的芯片组通常分为两个网桥来控制各组件的通信北桥:负责连接速度较快的CPU、…...
怎么做一款网站/搜索点击软件
本系列文章将会对CSS的flex布局做一个简单的介绍,希望读者朋友们能够对它的功能有一个整体的认知,在工作中可以自由的运用。这是本系列文章的第一篇,主要介绍flex布局中元素的收缩和扩展。如果要使用flex布局,那么第一个使用到的C…...