github 地址

cloud_sever: https://github.com/tutengdihuang/cloud_server

cloud_storage: https://github.com/tutengdihuang/cloud_storage

一 . 逻辑流程图

云存储和云服务器接口参数,主要逻辑为,通过不同的云厂商标识new对应的api对象。用生成的对象去调用不同厂商的云服务

二.  云存储SDK接口和参数

2.1 Put

  • 说明
  • 请求参数

参数

必须

说明

Ali

Tecent

AWS

Key

string

Y

云存储

Reader

io.Reader

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

Err

Error

2.2 PutFromFile

  • 说明
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

Key

string

Y

云存储key

FilePath

String

Y

本地文件位置

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

Err

Error

2.3 Get

  • 说明
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

Key

string

Y

云存储key

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

Reader

io.ReadCloser

Err

Error

2.4 GetString

  • 说明

    • 获取文件内容
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

Key

string

Y

云存储key

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

FileContent

String

Err

Error

2.5 GetToFile

  • 说明

    • 存储文件到本地
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

Key

string

云存储key

LocalFilepath

String

本地存储路径

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

Err

Error

2.6 Exists

  • 说明

    • 判断云存储文件是否存在
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

Key

string

Y

云存储key

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

Exist

Bool

Err

Error

2.7 Files

  • 说明

    • 根据前缀获取文件列表
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

Prefix

string

Y

云存储key前缀

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

FileList

[]File

文件列表

Err

Error

2.8 Size

  • 说明

    • 获取云存储文件的大小
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

Key

string

Y

云存储key

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

Size

Int64

文件大小

Err

Error

2.9 Delete

  • 说明

    • 根据key删除文件
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

Key

string

Y

云存储key

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

Err

Error

三. 云服务器SDK接口和参数

3.1 Server Instance

3.1.1 StartInstances

  • 说明

    • 阿里云:ECS实例状态必须为已停止,才能用此功能,startInstances
    • 腾讯:只有StartInstances
    • AWS:只有StartInstances
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

InstanceIds

string

Y

InstanceIds

InstanceIds数组

InstanceId.N数组

  • 返回参数

参数

类型

说明

RequestId

string

3.1.2 DescribeInstanceStatus

  • 说明

    • 阿里云
    • 腾讯
    • AWS
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

InstanceIds

[]string

Y

InstanceIds

InstanceIds数组

InstanceId.N数组

  • 返回参数

参数

类型

说明

RequestId

string

InstancesStatus

map[string]int

Key: instanceId, value : status

  • Status

参数

类型

说明

InstanceId

string

Status

[]Status

3.1.3 RunInstances

  • 说明

    • AWS: 请求字段中: CreditSpecification 表明cpu规则; 计费规则,按秒计费,1min收取一次费用,默认用T2

      • aws 带宽
      • InstanceType: 查找实例类型;实例配置
      • AWS_RunInstances
  • 请求参数

参数

类型

必须

说明

Ali

Tencent

AWS

InstanceName

string

Y

默认值为实例的InstanceId

不指定实例显示名称则默认显示‘未命名’。

HostName

string

参考ali云的命名规范

HostName

Placement. HostId

RegionId

string

可以调用DescribeRegions查看最新的阿里云地域列表

Placement,参考

Placement. AvailabilityZone

InstanceType

string

DescribeAvailableResource查看指定地域或者可用区内的资源供给情况

实例规格

Instance types, 查找实例类型;实例配置

InstanceChargeType

string

PrePaid:包年包月 PostPaid:按量付费

计费类型

InternetChargeType

string

PayByBandwidth:按固定带宽计费。 PayByTraffic:按使用流量计费

InternetAccessible. InternetChargeType

ImageId

string

ImageId

ImageId

ImageId

Password

string

Password

LoginSettings.Password

IamInstanceProfile: &ec2.IamInstanceProfileSpecification{Name: aws.String("ec2-role-name"),}

SecurityGroupId

string

您可以通过SecurityGroupId设置一个安全组,也可以通过SecurityGroupIds.N设置一个或多个安全组,但不支持同时设置SecurityGroupId和SecurityGroupIds.N

对应 SecurityGroupIds

SecurityGroup.N

VSwitchId

string

VirtualPrivateCloud. VpcId

SubnetId

Amount

string

取值范围:1~100,默认值1

InstanceCount, 包年包月实例取值范围:[1,300],按量计费实例取值范围:[1,100]。默认取值:1

MaxCount, Between 1 and the maximum number

LaunchTemplateName

string

启动模板名称。 使用启动模板创建实例时,您必须指定LaunchTemplateId或LaunchTemplateName确定启动模板

如果您不指定LaunchTemplate参数,则Placement为必选参数。若同时传递Placement和LaunchTemplate,则默认覆盖LaunchTemplate中对应的Placement的值

LaunchTemplateSpecification. LaunchTemplateName

InternetMaxBandwidthOut

Int64

InternetAccessible.Maxbandwith

ResourceGroupId

string

SystemDiskCategory

String

Systemdisk. DiskType

BlockDeviceMapping.N

SystemDiskSize

String

Systemdisk.Size

BlockDeviceMapping.N

Tag

[]string

TagSpecification.N

TagSpecification.N

SecurityEnhancementStrategy

String

Active:启用安全加固,只对公共镜像生效。 Deactive:不启用安全加固,对所有镜像类型生效。

EnhancedService

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

RequestId

string

InstanceIdSets

[]string

[]Instance. instanceId

TradePrice

Float64

3.1.4 ChangeInstancePassword (修改实例密码)

  • 说明

    • 腾讯云:ResetInstancesPassword
    • 阿里云:ModifyInstanceAttribute
    • AWS: 没有修改密码的属性, 通过ssh修改密码(目前查到的信息可以直接修改密码,需要实验)
    • 业务中目前只修改密码
    • 考虑把接口名字写成ChangeInstancePassword
    • 使用原始镜像密码登录,
    • 需要传入原始密码
  • 请求参数

参数

类型

必须

说明

Ali

Tencent

AWS

RegionId

string

Y

InstanceId

string

Y

InstantName

InstanceId

Password

String

  • 返回参数

参数

类型

说明

RequestId

string

3.1.5 DescribeInstancesAll

  • 说明

    • 业务逻辑:

      • 输入:InstanceIds,PageSize,PageNumber
      • 输出:服务器数量,服务器状态
    • 阿里:pageSize+pageNumber
      • 腾讯:offset+limit
      • AWS: MaxResults+NextToken(上次请求的token)
    • 请求参数(可以考虑合并一下)
    • 分两个接口: 1. 返回所有instance 2. 传入instanceIds(优先), 过滤条件(模式,instanceName)(设置max length) 返回对应信息
  • 请求参数

参数

类型

必须

说明

Ali

Tencent

AWS

ReginId

String

Y

  • 返回参数

参数

类型

说明

RequestId

string

Instances

[]DescribeInstance

  • DescribeInstance

参数

类型

说明

Ali

Tencent

AWS

InstanceId

string

Instance. InstanceId

Reservation. instancesSet. instanceId

InstanceName

String

Instance.InstanceName

Status

Const

服务器状态

Instance.InstanceState

Reservation. instancesSet.  instanceState

PublicIpAddress

[]string

公网IP

Instances.Instance[0].EipAddress.IpAddress

Instance. PublicIpAddresses

Reservation. instancesSet.ipAddress

PrivateIpAddress

[]string

私有ip

Instances.Instance[0].VpcAttributes.PrivateIpAddress.IpAddress[0]

Instance.PrivateIpAddresses

Reservation. instancesSet.privateIpAddress

3.1.6 DescribeInstancesByIDs

  • 说明

    • 业务逻辑:

      • 输入:InstanceIds,PageSize,PageNumber
      • 输出:服务器数量,服务器状态
    • 阿里:pageSize+pageNumber
      • 腾讯:offset+limit
      • AWS: MaxResults+NextToken(上次请求的token)
    • 请求参数(可以考虑合并一下)
    • 分两个接口: 1. 返回所有instance 2. 传入instanceIds(优先), 过滤条件(模式,instanceName)(设置max length) 返回对应信息
  • 请求参数

参数

类型

必须

说明

Ali

Tencent

AWS

InstanceIds

[]string

Y

InstanceIds

InstanceId.N

  • 返回参数

参数

类型

说明

RequestId

string

Instances

[]DescribeInstance

  • DescribeInstance

参数

类型

说明

Ali

Tencent

AWS

InstanceId

string

Instance. InstanceId

Reservation. instancesSet. instanceId

InstanceName

String

Instance.InstanceName

Status

Const

服务器状态

Instance.InstanceState

Reservation. instancesSet.  instanceState

PublicIpAddress

[]string

公网IP

Instances.Instance[0].EipAddress.IpAddress

Instance. PublicIpAddresses

Reservation. instancesSet.ipAddress

PrivateIpAddress

[]string

私有ip

Instances.Instance[0].VpcAttributes.PrivateIpAddress.IpAddress[0]

Instance.PrivateIpAddresses

Reservation. instancesSet.privateIpAddress

3.1.7 StopInstance

  • 说明:

    • 阿里云对应接口StopInstances
    • 腾讯云对应接口StopInstances
    • AWS: StopInstances
  • 请求参数

参数

类型

必须

说明

Ali

Tencent

AWS

InstanceIds

[]string

Y

InstanceIds

InstanceId.N

ForceStop

bool

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

RequestId

string

3.1.8 ReplaceSystemDisk

  • 说明

    • 停机更换系统或者磁盘,需求中只更换系统镜像或者重装系统
    • 接口名考虑换成修改系统镜像
    • 腾讯云对应接口:ResetInstance
    • 阿里云对应接口:ReplaceSystemDisk
  • 请求参数

参数

类型

必须

说明

Ali

Tencent

AWS

InstanceId

string

ImageId

String

Password

String

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

RequestId

string

DiskId

String

3.1.9 DeleteInstances

  • 说明

    • 腾讯云对应接口:TerminateInstances
    • 阿里云对应接口:DeleteInstances
    • AWS对应的是:TerminateInstances
  • 请求参数

参数

类型

必须

说明

Ali

Tencent

AWS

InstanceIds

[]string

Y

InstanceIds, Array of String

InstanceId.N

Force

String

  • 返回参数

参数

类型

说明

RequestId

string

3.2 Eip Address

3.2.1 AllocateEipAddress

  • 说明

    • 阿里接口 VPC专用网络API
    • 对应腾讯的私有网络具体收费标准查看官方文档
    • AWS: 方法名AllocateAddress
  • 请求参数

参数

类型

必须

说明

Ali

Tencent

AWS

RegionId

string

Y

DescribeRegions

Region, 地域列表

NetworkBorderGroup, 参考

Bandwidth

Int64

Y

InternetMaxBandwidthOut

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

RequestId

string

requestId

AllocationId

string

allocationId

EipAddress

String

具体的ip地址

AddressSet,不是具体的IP,是一个ID

publicIp

3.2.2 AssociateEipAddress

  • 说明

    • aws
    • aliyun
    • Tencent
  • 请求参数

参数

类型

必须

说明

Ali

Tencent

AWS

RegionId

string

Y

Region

AllocationId

string

Y

AllocationId

InstanceId

String

Y

InstanceId

AddressId

String

PublicIp

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

RequestId

string

AssociationId

String

associationId

3.2.3 DescribeEipAddresses

  • 说明:

    • 业务需要返回参数: AllocationId,EipAddress,rsp.EipAddresses.EipAddress[0].Status

      • 阿里云:接口,通过AllocationId解绑EipAddress
    • 腾讯云:DescribeAddresses, 通过AddressId的传递进行绑定解绑公网ip
    • AWS: DescribeAddresses
    • 请求参数组合1, RegionId,Status,PageNumber,PageSize
    • 请求参数组合2,RegionId,AllocationId,
    • 请求参数组合3, RegionId,AssociatedInstanceId,AssociatedInstanceType
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

RegionId

string

Y

Region

Filter.N.  allocation-id

AssociatedInstanceId

string

Y

Filter.N. association-id

AssociatedInstanceType

String

Y

AddressIds

[]string

Y

标识 EIP 的唯一 ID 列表

Filter.N. instance-id

AllocationIds

[]string

AllocationId.N

Status

String

PageNumber

Int64

PageSize

Int64

Limit

Int64

PublicIps

[]string

PublicIp.N

  • 返回参数

参数

类型

RequestId

string

EipInfo

[]Eip

  • Eip:

参数

类型

说明

AllocationId

string

EipAddresses

String

publicIP address,

Status

String

是否可用

AddressIdSet

string

腾讯云为唯一编号

3.2.4 UnassociateEipAddress

  • 说明

    • 腾讯对应函数DisassociateAddress
    • AddressId 可以用publicIP字段代替
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

RegionId

string

Y

Region

AllocationId

string

Y

AssociationId

InstanceId

String

Y

AddressId

string

AddressId, EIP 的唯一 ID

PublicIp

String

PublicIp

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

RequestId

string

Return

bool

Return

3.2.5 ReleaseEipAddress

  • 说明

    • 阿里接口名称:ReleaseEipAddress
    • 腾讯接口名称:ReleaseAddresses
  • 请求参数

参数

类型

必须

说明

Ali

Tencent

AWS

RegionId

string

Y

AllocationId

string

Y

AllocationId

AddressIds

[]string

Array of String

PublicIp

string

PublicIp

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

RequestId

string

Return

Bool

Return

3.3 Image

3.3.1 DescribeImages

  • 说明

    • AWS
    • Tencent
    • Ali
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

RegionId

string

Y

Region

ImageId

ImageId

ImageIds.N

ImageId.N

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

RequestId

string

ImageSet

[]Image

  • Image:

参数

类型

说明

Ali

Tencent

AWS

Status

string

Images.Image[0].Status

ImageSet[0].ImageState

ImageSet[0].ImageState

ImageId

String

3.3.2 CreateImage

  • 说明
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

RegionId

string

Y

Region

InstanceId

string

InstanceId

InstanceId

ImageName

string

ImageName

Name

ImageVersion

string

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

ImageId

string

imageId

RequestId

string

requestId

3.3.3 CopyImage

  • 说明
  • Tencent: SyncImages
  • AWS: CopyImage
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

RegionId

string

Y

Region

SourceRegion

ImageId

string

ImageIds.N

SourceImageId

DestinationRegionId

string

DestinationRegions.N

Name

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

ImageId

string

SyncImage.ImagieId

imageId

RequestId

string

requestId

3.3.4 DeleteImage

  • 说明

    • Tencent: DeleteImages
    • Ali: DeleteImages
    • AWS: DeregisterImage
  • 请求参数

参数

类型

必须

说明

Ali

Tecent

AWS

RegionId

string

Y

Region

SourceRegion

ImageIds

string

ImageIds.N

SourceImageId

Force

string

DestinationRegions.N

Name

  • 返回参数

参数

类型

说明

Ali

Tencent

AWS

RequestId

string

​​

Golang多云SDK 支持多云存储, 多云开服相关推荐

  1. 多云定义:什么是多云,多云究竟是什么?

    多云定义:什么是多云,多云究竟是什么? 我们最近在行云管家讨论过关于多云话题,因为"简化当今不断发展的IT环境的复杂性就是我们的工作".但是,虽然多云的概念很直观 - 对于IT人来 ...

  2. 多云战略:如何通过多云实现数字化转型?

    文章目录 "多云战略:如何通过多云实现数字化转型?" 一.引言 二.技术原理及概念 2.1. 基本概念解释 2.2. 技术原理介绍 三.实现步骤与流程 3.1. 准备工作:环境配置 ...

  3. 如何使用融云地图,文件等插件--融云 Android SDK 2.8.0+ Extension 开发文档

    转载自融云 Android SDK 2.8.0+ Extension 开发文档 融云 SDK 2.8.0 后对 会话界面输入区域.+号扩展区域.语音消息.Emoji 等进行了优化和重构,重构后上列区域 ...

  4. HTML5中如何检查浏览器是否支持本地存储

    如果你的浏览器支持该特性的话,那么全局对象:window上会有一个localStorage的属性,反之,你的浏览器不支持的话,那么该属性值为undefined JavaScript  function ...

  5. mysql不支持innodb存储引擎

    工作中,不免会遇到前辈已经编译安装过的mysql,忽然发现mysql不支持innodb的存储引擎的问题,现在来看一下吧 一.先看mysql是否支持innodb存储引擎 mysql> show v ...

  6. 《ArcGIS Runtime SDK for Android开发笔记》——(10)、ArcGIS Runtime SDK支持的空间数据类型...

    1.前言 移动端的数据来源非常重要,它决定了移动端功能的实现.早期的ArcGIS Android API中,主要以接入在线的数据源为主,因此主要实现在线的地图浏览.查询和路径分析.地理处理等从操作:在 ...

  7. mysql支持数据安全的引擎_MySQL 支持的存储引擎

    存储引擎: 数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建.查询.更新和删除数据操作. 不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎还可以获得 ...

  8. 开源PHP微信通用sdk,支持微信支付及所有基础接口(强烈推荐)

    PHP微信通用sdk,支持微信支付及所有基础接口 WeChatDeveloper for PHP 功能描述 技术帮助 代码仓库 文件说明(后缀会根据官方文档增加文件) 安装使用 微信支付 支付宝支付 ...

  9. PS4 不支持USB存储设备的文件系统 如何解决?

    昨日我在拷贝PS4上通过SHARP录制的星际战甲影像在插入我 的U盘时,突然看到屏幕左上角出现提示说"不支持USB存储设 备的文件系统"的提示,但是以前我插这张U盘时PS4都可以识 ...

最新文章

  1. 开源组织:Datawhale
  2. 多视图立体匹配论文分享:P-MVSNet
  3. Opencv Mediapipe 人体追踪
  4. 程序与进程的区别,并发与并行的区别,多进程的实现原理
  5. Java开发面试技巧,Hive-JDBC操作
  6. 软件工程(2019)第三次个人作业
  7. vue中v-model原理
  8. html应用模板,HTML5--应用网页模板
  9. tensorflow学习笔记:tf.control_dependencies,tf.GraphKeys.UPDATE_OPS,tf.get_collection
  10. python async_python async with和async for的使用
  11. JavaScript--我所理解的原型链
  12. mysql查询多造一列_mysql某列多值查询_MySQL
  13. vj p1041神风堂人数 题解
  14. 金九银十面试季,字节跳动面试题拿走不谢(附详细答案解析)
  15. 计算机专业论文答辩ppt,计算机毕论文答辩PPT(完整版).ppt
  16. 四级网络工程师笔记-计算机网络(中)
  17. app store connect
  18. JavaScript图片旋转缩放、像素矩阵获取
  19. Toefl-Speaking
  20. 解开硬盘逻辑死锁的一种有效方法 (转)

热门文章

  1. MySQL基础之DDL语句
  2. 再也不能迟到了!单位启用人脸识别考勤
  3. 大数据技术-数据仓库
  4. Maven中<relativePath/>的作用
  5. 曾经阿里、腾讯随我选,现在月薪五千都没人要,35岁程序员真的要去卖炒饭了吗?
  6. cubemx stm32 串口终端的实现与使用 (可以由用户自定义各种终端指令任意) 驱动代码
  7. 优酷暗黑模式(四):设计标准化的技术实现
  8. plsql操作oracle数据库删除重复数据
  9. 在家怎么能赚钱?三分钟教会你4个赚钱方法!
  10. 【Verilog】——Verilog简介