以下代码用于创建存储空间:
package bucket_sample
import (
"fmt"
"github.com/ks3sdklib/aws-sdk-go/aws"
"github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
"github.com/ks3sdklib/aws-sdk-go/aws/credentials"
"github.com/ks3sdklib/aws-sdk-go/service/s3"
)
var bucket = string("yourbucket")
var key = string("yourkey")
var key_encode = string("yourkey")
var key_copy = string("yourkey")
var content = string("content")
// 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
// 强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
// 通过指定 host(Endpoint),您可以在指定的地域创建新的存储空间。
var cre = credentials.NewStaticCredentials("ak", "sk", "") //online
var svc = s3.New(&aws.Config{
Region: "BEIJING",
Credentials: cre,
//Endpoint:"ks3-sgp.ksyun.com",
Endpoint: "ks3-cn-beijing.ksyuncs.com",
DisableSSL: true,
LogLevel: 1,
S3ForcePathStyle: false,
LogHTTPBody: true,
})
//创建bucket并关联项目
func TestCreateBucket(svc *s3.S3) {
resp, _ := svc.CreateBucket(&s3.CreateBucketInput{
ACL: aws.String("public-read"),
Bucket: aws.String(bucket),
ProjectId: aws.String("1232"), //项目ID
})
fmt.Println("结果:\n", awsutil.StringValue(resp))
}
以下代码用于上传文件:
package ks3test
import (
"bufio"
"bytes"
"github.com/ks3sdklib/aws-sdk-go/aws/awserr"
"github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
"net/url"
"strconv"
"strings"
"testing"
"time"
// "io"
"fmt"
"github.com/ks3sdklib/aws-sdk-go/aws"
"github.com/ks3sdklib/aws-sdk-go/aws/credentials"
"github.com/ks3sdklib/aws-sdk-go/service/s3"
"net/http"
"os"
)
var bucket = string("yourbucket")
var key = string("yourkey")
var key_encode = string("yourkey")
var key_copy = string("yourkey")
var content = string("content")
var prefix = "test/" //目录名称
// 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
// 强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
// 通过指定 host(Endpoint),您可以在指定的地域创建新的存储空间。
var cre = credentials.NewStaticCredentials("ak", "sk", "") //online
var svc = s3.New(&aws.Config{
//Region 可参考 [https://docs.ksyun.com/documents/6761](https://docs.ksyun.com/documents/6761)
Region: "BEIJING",
Credentials: cre,
//Endpoint 可参考 [https://docs.ksyun.com/documents/6761](https://docs.ksyun.com/documents/6761)
Endpoint: "ks3-cn-beijing.ksyuncs.com",
DisableSSL: true, //是否禁用https
LogLevel: 1, //是否开启日志,0为关闭日志,1为开启日志
LogHTTPBody: true, //是否把HTTP请求body打入日志
S3ForcePathStyle: false,
Logger: nil, //打日志的位置
})
//上传文件
func putObj(svc *s3.S3) {
//获取本地文件FD
fd, _ := os.Open("D:\\suiyi.jpg")
//指定目标Object对象标签,可同时设置多个标签,如:TagA=A&TagB=B。
//说明 Key和Value需要先进行URL编码,如果某项没有“=”,则看作Value为空字符串。详情请见对象标签([https://docs.ksyun.com/documents/39576](https://docs.ksyun.com/documents/39576))。
v := url.Values{}
v.Add("name", "yz")
v.Add("age", "11")
XAmzTagging := v.Encode()
input := s3.PutObjectInput{
Bucket: aws.String(bucket),
Key: aws.String(key),
ACL: aws.String("public-read"),
Body: fd,
XAmzTagging: aws.String(XAmzTagging),
}
resp, _ := svc.PutObject(&input)
fmt.Println("结果:\n", awsutil.StringValue(resp))
}
上传文件的更多信息,请参见 PUT Object 。
以下代码用于列举文件:
package ks3test
import (
"bufio"
"bytes"
"github.com/ks3sdklib/aws-sdk-go/aws/awserr"
"github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
"net/url"
"strconv"
"strings"
"testing"
"time"
// "io"
"fmt"
"github.com/ks3sdklib/aws-sdk-go/aws"
"github.com/ks3sdklib/aws-sdk-go/aws/credentials"
"github.com/ks3sdklib/aws-sdk-go/service/s3"
"net/http"
"os"
)
var bucket = string("yourbucket")
var key = string("yourkey")
var key_encode = string("yourkey")
var key_copy = string("yourkey")
var content = string("content")
var prefix = "test/" //目录名称
// 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
// 强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
// 通过指定 host(Endpoint),您可以在指定的地域创建新的存储空间。
var cre = credentials.NewStaticCredentials("ak", "sk", "") //online
var svc = s3.New(&aws.Config{
//Region 可参考 [https://docs.ksyun.com/documents/6761](https://docs.ksyun.com/documents/6761)
Region: "BEIJING",
Credentials: cre,
//Endpoint 可参考 [https://docs.ksyun.com/documents/6761](https://docs.ksyun.com/documents/6761)
Endpoint: "ks3-cn-beijing.ksyuncs.com",
DisableSSL: true, //是否禁用https
LogLevel: 1, //是否开启日志,0为关闭日志,1为开启日志
LogHTTPBody: true, //是否把HTTP请求body打入日志
S3ForcePathStyle: false,
Logger: nil, //打日志的位置
})
//列表bucket下对象
func TestListObjects(t *testing.T) {
objects1, _ := svc.ListObjects(&s3.ListObjectsInput{
Bucket: aws.String(bucket),
Delimiter: aws.String("/"), //分隔符,用于对一组参数进行分割的字符
MaxKeys: aws.Long(int64(30)), //设置响应体中返回的最大记录数(最后实际返回可能小于该值)。默认为1000。如果你想要的结果在1000条以后,你可以设定 marker 的值来调整起始位置。
Prefix: aws.String(prefix), //限定响应结果列表使用的前缀,正如你在电脑中使用的文件夹一样。
Marker: aws.String(""), //指定列举指定空间中对象的起始位置。KS3按照字母排序方式返回结果,将从给定的 marker 开始返回列表。
})
//获取对象列表
objectList := objects1.Contents
for i := 0; i < len(objectList); i++ {
object := objectList[i]
println(*object.Key)
}
}
列举文件的更多详情,请参见 GetBucket (ListObjects) 。
以下代码用于删除文件
package ks3test
import (
"bufio"
"bytes"
"github.com/ks3sdklib/aws-sdk-go/aws/awserr"
"github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
"net/url"
"strconv"
"strings"
"testing"
"time"
// "io"
"fmt"
"github.com/ks3sdklib/aws-sdk-go/aws"
"github.com/ks3sdklib/aws-sdk-go/aws/credentials"
"github.com/ks3sdklib/aws-sdk-go/service/s3"
"net/http"
"os"
)
var bucket = string("yourbucket")
var key = string("yourkey")
var key_encode = string("yourkey")
var key_copy = string("yourkey")
var content = string("content")
var prefix = "test/" //目录名称
// 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
// 强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
// 通过指定 host(Endpoint),您可以在指定的地域创建新的存储空间。
var cre = credentials.NewStaticCredentials("ak", "sk", "") //online
var svc = s3.New(&aws.Config{
//Region 可参考 [https://docs.ksyun.com/documents/6761](https://docs.ksyun.com/documents/6761)
Region: "BEIJING",
Credentials: cre,
//Endpoint 可参考 [https://docs.ksyun.com/documents/6761](https://docs.ksyun.com/documents/6761)
Endpoint: "ks3-cn-beijing.ksyuncs.com",
DisableSSL: true, //是否禁用https
LogLevel: 1, //是否开启日志,0为关闭日志,1为开启日志
LogHTTPBody: true, //是否把HTTP请求body打入日志
S3ForcePathStyle: false,
Logger: nil, //打日志的位置
})
//删除对象
func TestDelObject(svc *s3.S3) {
resp, _ := svc.DeleteObject(&s3.DeleteObjectInput{
Bucket: aws.String(bucket),
Key: aws.String(key),
})
fmt.Println("结果:\n", awsutil.StringValue(resp))
}
删除文件的更多详情,请参见 DELETE Object 。
文档内容是否对您有帮助?
评价建议不能为空
非常感谢您的反馈,我们会继续努力做到更好!