主题切换
初始化
确定EndPoint
EndPoint 是osca各个区域的地址,目前支持以下形式
EndPoint类型 | EndPoint类型 |
---|---|
osca区域域名地址 | 使用桶所在的区域的osca域名地址 |
osca区域域名地址
进入osca控制台,在桶的 属性 中可以查找到当前桶所在的区域及域名,桶的域名的后缀部分为 该桶的公网域名,例如:fgws3-ocloud.ihep.ac.cn。
配置秘钥
要接入OSCA-OSS服务,您需要一对有效的AccessKey(包括AccessKeyId与AccessKeySecret)来进行签名验证。
在获取到AccessKeyId与AccessKeySecret之后,可以按照以下的步骤进行初始化。
新建S3
GO-SDK提供的接口都在S3中实现,并以成员方法的方式对外提供调用。因此使用GO-SDK前必须实例化一个S3对象。
关于请求参数
go
package main
import (
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws"
"fmt"
"github.com/aws/aws-sdk-go/service/s3"
)
func main() {
copyObjectInput := &s3.CopyObjectInput{
Bucket:aws.String(DestBucket),
Key:aws.String(DestKey),
CopySource:aws.String("/" + SrcBucket + "/" + SrcKey),
}
_,err := getS3Client().CopyObject(copyObjectInput)
if err != nil {
fmt.Printf(err.Error())
}
}
实例化S3
如果您需要修改S3的默认参数,可以在实例化S3时传入Config实例。Config是S3的配置类,可配置连接超时、Key等参数。通过Config可以设置的参数见下表:
参数 | 描述 | 是否必须 |
---|---|---|
Endpoint | 上传的osca地址 | 是 |
AccessKey | 认证使用的Access Key | 否 |
SecretKey | 认证使用的Access Secret | 否 |
DisableSSL | 是否弃用HTTPS默认:false | 否 |
S3ForcePathStyle | 是否使用子目录默认:false,osca 公有云不支持子目录 | 否 |
LogLevel | 打印日志的等级默认:Debug | 否 |
Logger | 打印日志的对象 | 否 |
带Config参数实例化S3的示例代码:
go
package main
import (
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/s3"
)
func getS3Client() (*s3.S3){
creds := credentials.NewStaticCredentials(ak, sk, "")
config := &aws.Config{
Region: aws.String(region),
Endpoint: aws.String(endpoint),
S3ForcePathStyle: aws.Bool(true),
Credentials: creds,
DisableSSL: aws.Bool(false),
}
sess := session.Must(session.NewSession(config))
return s3.New(sess)
}
后面的示例代码默认您已经实例化了所需的S3对象, 不再赘述,后续的代码示例均需要将实例化的代码写入main函数