OSS ON云盒为云盒(CloudBox)产品提供了非结构化数据本地存储、本地访问、以及本地处理的能力。您可以在OSS ON云盒中创建存储空间(Bucket),并使用与公共云一致的API、SDK访问云盒中的OSS。
功能优势
云盒是阿里云提供的全托管云服务。公共云的硬件设施以软硬一体化方式部署到您本地机房,满足您业务上的数据安全、数据本地处理、低延时等需求。您可以在本地拥有与公共云一致的使用体验。云盒开箱即用,有助于您更好地专注业务逻辑,减少为硬件和云平台投入的运维精力。关于云盒的更多信息,请参见什么是云盒。
与公共云相比,通过云盒您可以获得本地部署带来的数据安全、数据本地处理、低延时等优势。
-
数据安全:数据存储在您自主可控的数据中心内,满足数据驻留在本地的监管要求。
-
数据本地处理:无需传输到云端,减少大量数据传输到云端所耗费的费用。
-
低延时:云盒离您本地的设备距离近,可以与本地设备、应用程序进行近实时的业务交互。
-
资源独占:无需与公共云其他客户共享存储,即便是敏感数据,也能安心存放。
使用场景
-
将本地服务器环境制作成镜像保存到云盒本地OSS
如果您想要将本地服务器环境制作成自定义镜像,以便在云盒内批量部署环境、备份服务器数据等,您可以通过SMC来迁移本地服务器到阿里云云盒,迁移时基于本地服务器环境制作的镜像可以保存到云盒OSS中,实现数据在本地闭环。具体步骤,请参见将本地服务器环境制作成镜像保存到云盒本地OSS。
-
将ECS快照保存到云盒本地OSS
快照是某一时间点云盘数据状态的备份文件,可以用于数据备份和制作镜像。您可以基于云盒中的ECS实例创建快照,并将快照保存到云盒OSS中,以实现业务数据本地闭环。具体步骤,请参见将ECS快照保存到云盒本地OSS。
费用说明
关于OSS ON云盒的计费方式、扩容规则、计费案例等信息,请参见对象存储计费。
使用限制
-
每个阿里云账户最多只能在OSS ON云盒中创建100个有地域属性的Bucket。
-
不支持在OSS ON云盒中创建无地域属性的Bucket。
-
OSS ON云盒中所有的Bucket以及Bucket中的Object仅支持选择标准(Standard)存储类型。
-
OSS ON云盒服务的端加密方式仅支持SSE-OSS,不支持SSE-KMS。
-
OSS ON云盒服务当前仅提供内网访问域名,不支持公网访问Endpoint。当您需要将云盒中的OSS资源与公共云的OSS资源进行数据传输时,需在打通网络后通过ossimport的方式进行数据传输。
云盒Endpoint
您可以通过云盒VPC访问云盒Bucket。访问域名分为管控域名和数据域名两种。
-
管控域名
管控域名仅用于云盒Bucket级别的操作。关于管控域名支持的API列表,请参见管控域名支持的API列表。
格式为
<Cloudbox-Id>.<Region>.oss-cloudbox-control.aliyuncs.com,示例值为cb-f8z7yvzgwfkl9q0h****.cn-shenzhen.oss-cloudbox-control.aliyuncs.com。 -
数据域名
数据域名可用于云盒Bucket以及云盒Bucket内数据的操作。关于数据域名支持的API列表,请参见数据域名支持的API列表。
数据域名格式为
<Cloudbox-Id>.<Region>.oss-cloudbox.aliyuncs.com,示例值为cb-f8z7yvzgwfkl9q0h****.cn-shenzhen.oss-cloudbox.aliyuncs.com。
当您在云盒内新建VPC并需要在VPC环境内使用OSS时,请联系技术支持开通域名。
SDK支持
OSS ON云盒支持通过Java、Python、Go SDK访问。云盒场景下,SDK的操作调用方式与公共云OSS一致,差异仅在于创建客户端时需使用V4签名、指定云盒所在地域(region)与云盒ID(cloud box id),并将Endpoint设置为云盒数据域名。各SDK支持云盒的最低版本如下:
|
SDK |
支持云盒的最低版本 |
创建客户端的关键配置 |
|
Java SDK |
3.15.0及以上版本 |
SignVersion.V4、region、cloudBoxId |
|
Python SDK V2(alibabacloud-oss-python-sdk-v2) |
1.1.1及以上版本 |
region、cloud_box_id(或 enable_auto_detect_cloud_box_id);默认使用V4签名 |
|
Go SDK V2(alibabacloud-oss-go-sdk-v2) |
v1.2.1及以上版本 |
WithRegion、WithCloudBoxId(或 WithEnableAutoDetectCloudBoxId);默认使用V4签名 |
旧版Go SDK(aliyun-oss-go-sdk)自v2.2.3起也支持云盒,创建客户端时需显式设置oss.AuthVersion(oss.AuthV4)并配合oss.CloudBoxId使用。推荐新项目使用新一代Go SDK V2(alibabacloud-oss-go-sdk-v2)。
以下示例展示如何创建访问云盒的客户端,其中Endpoint为云盒数据域名(格式为<Cloudbox-Id>.<Region>.oss-cloudbox.aliyuncs.com):
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.ClientBuilderConfiguration;
import com.aliyun.oss.common.auth.CredentialsProviderFactory;
import com.aliyun.oss.common.auth.DefaultCredentialProvider;
import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider;
import com.aliyun.oss.common.comm.SignVersion;
// 云盒数据域名,格式为 Cloudbox-Id.Region.oss-cloudbox.aliyuncs.com。
String endpoint = "https://cb-f8z7yvzgwfkl9q0h****.cn-hangzhou.oss-cloudbox.aliyuncs.com";
// 云盒所在地域。
String region = "cn-hangzhou";
// 云盒ID。
String cloudBoxId = "cb-f8z7yvzgwfkl9q0h****";
// 从环境变量中获取访问凭证,请确保已设置环境变量 OSS_ACCESS_KEY_ID 和 OSS_ACCESS_KEY_SECRET。
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
ClientBuilderConfiguration conf = new ClientBuilderConfiguration();
// 云盒必须使用 V4 签名。
conf.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(new DefaultCredentialProvider(credentialsProvider.getCredentials()))
.clientConfiguration(conf)
.region(region)
.cloudBoxId(cloudBoxId)
.build();
// 创建客户端后,Bucket 与 Object 的操作调用方式与公共云 OSS 一致。
import alibabacloud_oss_v2 as oss
# 加载默认配置,默认使用 V4 签名。
cfg = oss.config.load_default()
# 从环境变量中获取访问凭证,请确保已设置环境变量 OSS_ACCESS_KEY_ID 和 OSS_ACCESS_KEY_SECRET。
cfg.credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# 云盒所在地域。
cfg.region = "cn-hangzhou"
# 云盒ID,等价于 Java SDK 的 .cloudBoxId(),会将签名 product 设置为 oss-cloudbox。
cfg.cloud_box_id = "cb-f8z7yvzgwfkl9q0h****"
# 云盒数据域名,格式为 Cloudbox-Id.Region.oss-cloudbox.aliyuncs.com。
cfg.endpoint = "cb-f8z7yvzgwfkl9q0h****.cn-hangzhou.oss-cloudbox.aliyuncs.com"
client = oss.Client(cfg)
# 创建客户端后,Bucket 与 Object 的操作调用方式与公共云 OSS 一致。
package main
import (
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
func main() {
cfg := oss.LoadDefaultConfig().
// 从环境变量中获取访问凭证,请确保已设置环境变量 OSS_ACCESS_KEY_ID 和 OSS_ACCESS_KEY_SECRET。
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
// 云盒所在地域。
WithRegion("cn-hangzhou").
// 默认已是 V4 签名,此处显式设置。
WithSignatureVersion(oss.SignatureVersionV4).
// 云盒数据域名,格式为 Cloudbox-Id.Region.oss-cloudbox.aliyuncs.com。
WithEndpoint("cb-f8z7yvzgwfkl9q0h****.cn-hangzhou.oss-cloudbox.aliyuncs.com").
// 云盒ID,等价于 Java SDK 的 .cloudBoxId(),会将签名 product 设置为 oss-cloudbox。
WithCloudBoxId("cb-f8z7yvzgwfkl9q0h****")
client := oss.NewClient(cfg)
_ = client
// 创建客户端后,Bucket 与 Object 的操作调用方式与公共云 OSS 一致。
}
管控域名支持的API列表
OSS ON云盒管控域名支持的Bucket级别API列表如下:
|
分类 |
API |
描述 |
|
基础操作 |
创建云盒Bucket。 |
|
|
删除云盒Bucket。 |
||
|
获取云盒Bucket信息。 |
||
|
获取云盒Bucket所属的位置信息。 |
||
|
权限控制(ACL) |
设置云盒Bucket访问权限。 |
|
|
获取云盒Bucket访问权限。 |
||
|
生命周期(Lifecycle) |
设置云盒Bucket的生命周期规则。 |
|
|
获取云盒Bucket的生命周期规则。 |
||
|
删除云盒Bucket的生命周期规则。 |
||
|
版本控制(Versioning) |
设置云盒Bucket的版本控制状态。 |
|
|
获取云盒Bucket的版本控制状态。 |
||
|
授权策略(Policy) |
设置云盒Bucket的授权策略。 |
|
|
获取云盒Bucket的授权策略。 |
||
|
删除云盒Bucket的授权策略。 |
||
|
日志管理(Logging) |
开启云盒Bucket日志转存功能。 |
|
|
获取云盒Bucket日志转存配置情况。 |
||
|
关闭云盒Bucket日志转存功能。 |
||
|
静态网站(Website) |
设置云盒Bucket为静态网站托管模式。 |
|
|
获取云盒Bucket的静态网站托管配置。 |
||
|
关闭云盒Bucket的静态网站托管模式。 |
||
|
防盗链(Referer) |
设置云盒Bucket的防盗链规则。 |
|
|
获取云盒Bucket的防盗链规则。 |
||
|
加密(Encryption) |
设置云盒Bucket的加密规则。 |
|
|
获取云盒Bucket的加密规则。 |
||
|
删除云盒Bucket的加密规则。 |
数据域名支持的API列表
OSS ON云盒数据域名支持的API列表如下:
关于Service操作
|
API |
描述 |
|
返回请求者拥有的所有云盒Bucket。 |
关于Bucket操作
|
分类 |
API |
描述 |
|
基础操作 |
创建云盒Bucket。 |
|
|
删除云盒Bucket。 |
||
|
列出云盒Bucket中所有Object的信息。 |
||
|
列出云盒Bucket中所有Object的信息。 |
||
|
获取云盒Bucket信息。 |
||
|
获取云盒Bucket所属的位置信息。 |
||
|
权限控制(ACL) |
设置云盒Bucket访问权限。 |
|
|
获取云盒Bucket访问权限。 |
||
|
生命周期(Lifecycle) |
设置云盒Bucket的生命周期规则。 |
|
|
获取云盒Bucket的生命周期规则。 |
||
|
删除云盒Bucket的生命周期规则。 |
||
|
版本控制(Versioning) |
设置云盒Bucket的版本控制状态。 |
|
|
获取云盒Bucket的版本控制状态。 |
||
|
列举云盒Bucket中所有Object的版本信息。 |
||
|
授权策略(Policy) |
设置云盒Bucket的授权策略。 |
|
|
获取云盒Bucket的授权策略。 |
||
|
删除云盒Bucket的授权策略。 |
||
|
日志管理(Logging) |
开启云盒Bucket日志转存功能。 |
|
|
获取云盒Bucket日志转存配置情况。 |
||
|
关闭云盒Bucket日志转存功能。 |
||
|
静态网站(Website) |
设置云盒Bucket为静态网站托管模式。 |
|
|
获取云盒Bucket的静态网站托管配置。 |
||
|
关闭云盒Bucket的静态网站托管模式。 |
||
|
防盗链(Referer) |
设置云盒Bucket的防盗链规则。 |
|
|
获取云盒Bucket的防盗链规则。 |
||
|
加密(Encryption) |
设置云盒Bucket的加密规则。 |
|
|
获取云盒Bucket的加密规则。 |
||
|
删除云盒Bucket的加密规则。 |
关于Object的操作
|
分类 |
APi |
描述 |
|
基础操作 |
上传Object。 |
|
|
获取Object。 |
||
|
拷贝Object。 |
||
|
以追加写的方式上传Object。 |
||
|
删除单个Object。 |
||
|
删除多个Object。 |
||
|
只返回某个Object的meta信息,不返回文件内容。 |
||
|
返回Object的基本meta信息,包括该Object的ETag、Size(文件大小)以及LastModified等,不返回文件内容。 |
||
|
分片上传(MultipartUpload) |
初始化一个Multipart Upload事件。 |
|
|
根据指定的Object名和uploadId来分块(Part)上传数据。 |
||
|
通过在UploadPart请求的基础上增加一个请求头x-oss-copy-source来调用UploadPartCopy接口,实现从一个已存在的Object中拷贝数据来上传一个Part。 |
||
|
在将所有数据Part都上传完成后,您必须调用CompleteMultipartUpload接口来完成整个文件的分片上传。 |
||
|
取消Multipart Upload事件并删除对应的Part数据。 |
||
|
列举所有执行中的Multipart Upload事件,即已经初始化但还未完成(Complete)或者还未中止(Abort)的Multipart Upload事件。 |
||
|
列举指定uploadId所属的所有已经上传成功Part。 |
||
|
权限控制(ACL) |
修改Object的访问权限。 |
|
|
查看Object的访问权限。 |
||
|
软链接(Symlink) |
创建软链接。 |
|
|
获取软链接。 |
||
|
标签(Tagging) |
设置或更新Object标签。 |
|
|
获取Object标签信息。 |
||
|
删除指定的Object标签。 |