产品优势
稳定可靠
OSS作为阿里巴巴全集团数据存储的核心基础设施,多年支撑双十一业务高峰,历经高可用与高可靠的严苛考验。OSS的多重冗余架构设计,为数据持久存储提供可靠保障。同时,OSS基于高可用架构设计,消除单节故障,确保数据业务的持续性。

安全合规
支持服务端加密、客户端加密、防盗链、IP黑白名单、细粒度权限管控、日志审计、WORM特性,并获得多项合规认证,包括SEC、FINRA等,满足企业数据安全与合规要求。

数据分层
提供标准、低频、归档多种类型,通过生命周期自动化实现数据类型转换与过期管理,覆盖从热到冷多种存储场景。

运行环境
Go 1.5及以上。
安装方法
go get github.com/aliyun/aliyun-oss-go-sdk/oss
快速使用
获取存储空间列表(List Bucket)
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
lsRes, err := client.ListBuckets()
if err != nil {
// HandleError(err)
}
for _, bucket := range lsRes.Buckets {
fmt.Println("Buckets:", bucket.Name)
}
复制
创建存储空间(Create Bucket)
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
err = client.CreateBucket("my-bucket")
if err != nil {
// HandleError(err)
}
复制
删除存储空间(Delete Bucket)
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
err = client.DeleteBucket("my-bucket")
if err != nil {
// HandleError(err)
}
复制
上传文件(Put Object)
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
bucket, err := client.Bucket("my-bucket")
if err != nil {
// HandleError(err)
}
err = bucket.PutObjectFromFile("my-object", "LocalFile")
if err != nil {
// HandleError(err)
}
复制
下载文件 (Get Object)
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
bucket, err := client.Bucket("my-bucket")
if err != nil {
// HandleError(err)
}
err = bucket.GetObjectToFile("my-object", "LocalFile")
if err != nil {
// HandleError(err)
}
复制
获取文件列表(List Objects)
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
bucket, err := client.Bucket("my-bucket")
if err != nil {
// HandleError(err)
}
lsRes, err := bucket.ListObjects()
if err != nil {
// HandleError(err)
}
for _, object := range lsRes.Objects {
fmt.Println("Objects:", object.Key)
}
复制
删除文件(Delete Object)
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
bucket, err := client.Bucket("my-bucket")
if err != nil {
// HandleError(err)
}
err = bucket.DeleteObject("my-object")
if err != nil {
// HandleError(err)
}
复制
注意事项
bucket就是用户创建的顶层目录,所有用户上传的文件都必须存在bucket下面,而且bucket在OSS系统中是不能重名的。如果已经有一个用户创建了bucket名称叫ceshi,那么很遗憾,您就不能创建一个名称叫ceshi的bucket了,每个用户最多可以创建10个bucket。
AccessKey是访问阿里云API的秘钥,这里也需要提前创建一份,创建后我们需要记住自己的AccessKey ID和Access Key Secret 获取地址https://ak-console.aliyun.com/#/accesskey
Endpoint (地域节点)
拷贝示例文件。到OSS Go SDK的安装路径(即GOPATH变量中的第一个路径),进入OSS Go SDK的代码目录
src\github.com\aliyun\aliyun-oss-go-sdk
, 把其下的sample目录和sample.go复制到您的测试工程src目录下。修改sample/config.go里的endpoint、AccessKeyId、AccessKeySecret、BucketName等配置。
请在您的工程目录下执行
go run src/sample.go
。