3. 快速入门¶
请确认您已经熟悉NOS的基本概念,如Bucket、Object、EndPoint、AccessKeyId和AccessKeySecret等。 本节您将看到如何快速的使用NOS GOLANG SDK,完成常用的操作,上传文件、下载文件等。
3.1. 常用包¶
常用类型 | 备注 |
---|---|
nosclient | 包含了主要的对象操作API |
model | 包含了对象操作API的请求和响应的结构类型 |
3.2. 基本操作¶
3.2.1. 上传文件¶
对象(Object)是NOS中最基本的数据单元,您可以把它简单的理解为文件,以下代码可以实现简单的对象上传:
package main
import (
"fmt"
"github.com/NetEase-Object-Storage/nos-golang-sdk/nosclient"
"github.com/NetEase-Object-Storage/nos-golang-sdk/model"
)
func main() {
metadata := &model.ObjectMetadata{
Metadata: map[string]string{
nosconst.CONTENT_TYPE: contentType,
nosconst.CONTENT_MD5: OBJECTMD5,
},
}
putObjectRequest := &model.PutObjectRequest{
Bucket: "使用的桶名,注意命名规则",
Object: "使用的对象名,注意命名规则",
FilePath: path,
Metadata: metadata,
}
result, err := nosClient.PutObjectByFile(putObjectRequest)
if err != nil {
fmt.Println(err.Error()) // Message from an error.
} else {
fmt.Println(result) // Pretty-print the response data.
}
}
Attention
对象命名规则请参见 API 手册 对象
更多的上传文件信息,请参见 NOS-GOLANG-SDK 上传文件
3.2.2. 下载文件¶
上传对象成功之后,您可以读取它的内容,以下代码可以实现文件的下载:
package main
import (
"fmt"
"github.com/NetEase-Object-Storage/nos-golang-sdk/nosclient"
"github.com/NetEase-Object-Storage/nos-golang-sdk/model"
)
func main() {
objectRequest := &model.GetObjectRequest{
Bucket: "使用的桶名,注意命名规则",
Object: "使用的对象名,注意命名规则",
}
objectResult, err := nosClient.GetObject(objectRequest)
if err != nil {
fmt.Println(err.Error())
}
}
更多的下载文件信息,请参见 NOS-GOLANG-SDK 下载文件
3.2.3. 列举文件¶
当上传文件成功之后,可以查看桶中包含的文件列表,以下代码展示如何列举桶内的文件:
package main
import (
"fmt"
"github.com/NetEase-Object-Storage/nos-golang-sdk/nosclient"
"github.com/NetEase-Object-Storage/nos-golang-sdk/model"
)
func main() {
listRequest := &model.ListObjectsRequest{
Bucket: "使用的桶名,注意命名规则",
Prefix: PREFIX,
Delimiter: DELIMITER,
Marker: MARKER,
MaxKeys: 100,
}
objectResult, err := s.nosClient.ListObjects(listRequest)
if err != nil {
fmt.Println(err.Error())
}
}
Note
上面的代码默认列举100个object
更多的管理文件信息,请参见 NOS-GOLANG-SDK 文件管理
3.2.4. 删除文件¶
文件上传成功后,可以指定删除桶中的文件,以下代码实现桶中文件的删除:
package main
import (
"fmt"
"github.com/NetEase-Object-Storage/nos-golang-sdk/nosclient"
"github.com/NetEase-Object-Storage/nos-golang-sdk/model"
)
func main() {
objectRequest := &model.ObjectRequest{
Bucket : "使用的桶名,注意命名规则",
Object : "使用的对象名,注意命名规则",
}
err := nosClient.DeleteObject(objectRequest)
if err != nil {
fmt.Println(err.Error()) // Message from an error.
return
}
}