このトピックでは、Object Storage Service (OSS) SDK for Goを使用して、バケットの作成、オブジェクトのアップロード、オブジェクトのダウンロードなどのルーチン操作を実行する方法について説明します。
バケットを作成する
バケットは OSS のグローバルネームスペースです。 ファイルを格納するデータコンテナーのようなものです。 次のコードは、バケットの作成方法の例を示しています。
パッケージメイン
import (import (import)
"fmt"
"os"
「github.com/aliyun/aliyun-oss-go-sdk/oss」
)
func handleError (エラー) {
fmt.Println("Error:", err)
os.Exit(-1)
}
func main() {
// バケットの名前を指定します。
bucketName := "yourBucketName"
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Create an OSSClient instance.
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 実際のエンドポイントを指定します。
client, err := oss.New("yourEndpoint", ", " ", ", oss.SetCredentialsProvider(&provider))
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// バケットを作成します。
err = client.CreateBucket(bucketName)
if err! =nil {
handleError(err)
}
}
オブジェクトのアップロード
次のコードは、オブジェクトをOSSにアップロードする方法の例を示しています。
パッケージメイン
import (import (import)
"fmt"
"os"
「github.com/aliyun/aliyun-oss-go-sdk/oss」
)
func handleError (エラー) {
fmt.Println("Error:", err)
os.Exit(-1)
}
func main() {
// バケットの名前を指定します。
bucketName := "yourBucketName"
// オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。
objectName := "yourObjectName"
// ローカルファイルのフルパスを指定します。
localFileName := "yourLocalFileName"
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Create an OSSClient instance.
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 実際のエンドポイントを指定します。
client, err := oss.New("yourEndpoint", ", " ", ", oss.SetCredentialsProvider(&provider))
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// バケット情報を取得します。
bucket, err := client.Bucket(bucketName)
if err! =nil {
handleError(err)
}
// ローカルファイルをアップロードします。
err = bucket.PutObjectFromFile(objectName, localFileName)
if err! =nil {
handleError(err)
}
}
オブジェクトのダウンロード
次のコードは、ローカルコンピューターにオブジェクトをダウンロードする方法の例を示しています。
パッケージメイン
import (import (import)
"fmt"
"os"
「github.com/aliyun/aliyun-oss-go-sdk/oss」
)
func handleError (エラー) {
fmt.Println("Error:", err)
os.Exit(-1)
}
func main() {
// バケットの名前を指定します。
bucketName := "yourBucketName"
// オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。
objectName := "yourObjectName"
// ダウンロードしたオブジェクトのフルパスを指定します。
downloadedFileName := "yourDownloadedFileName"
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Create an OSSClient instance.
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 実際のエンドポイントを指定します。
client, err := oss.New("yourEndpoint", ", " ", ", oss.SetCredentialsProvider(&provider))
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// バケット情報を取得します。
bucket, err := client.Bucket(bucketName)
if err! =nil {
handleError(err)
}
// Download the object.
err = bucket.GetObjectToFile(objectName, downloadedFileName)
if err! =nil {
handleError(err)
}
}
オブジェクトの一覧表示
次のコードは、特定のバケット内のオブジェクトを一覧表示する方法の例を示しています。 デフォルトでは、最大100個のオブジェクトが一覧表示されます。
パッケージメイン
import (import (import)
"fmt"
"os"
「github.com/aliyun/aliyun-oss-go-sdk/oss」
)
func HandleError (エラーエラー) {
fmt.Println("Error:", err)
os.Exit(-1)
}
func main() {
// バケットの名前を指定します。
bucketName := "yourBucketName"
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Create an OSSClient instance.
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 実際のエンドポイントを指定します。
client, err := oss.New("yourEndpoint", ", " ", ", oss.SetCredentialsProvider(&provider))
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// バケット情報を取得します。
bucket, err := client.Bucket(bucketName)
if err! =nil {
handleError(err)
}
// List objects.
marker := ""
for {
lsRes, err := bucket.ListObjects(oss.Marker(marker))
if err! =nil {
HandleError(err)
}
// リストされたオブジェクトを表示します。 デフォルトでは、100のオブジェクトが一度に返されます。
for _, object := range lsRes.Objects {
fmt.Println("Bucket: ", object.Key)
}
if lsRes.IsTruncated {
marker = lsRes.NextMarker
} else {
break
}
}
}
オブジェクトの削除
次のコードは、オブジェクトを削除する方法の例を示しています。
パッケージメイン
import (import (import)
"fmt"
"os"
「github.com/aliyun/aliyun-oss-go-sdk/oss」
)
func handleError (エラー) {
fmt.Println("Error:", err)
os.Exit(-1)
}
func main() {
// バケットの名前を指定します。
bucketName := "yourBucketName"
// オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。
objectName := "yourObjectName"
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// Create an OSSClient instance.
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 実際のエンドポイントを指定します。
client, err := oss.New("yourEndpoint", ", " ", ", oss.SetCredentialsProvider(&provider))
if err! =nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// バケット情報を取得します。
bucket, err := client.Bucket(bucketName)
if err! =nil {
handleError(err)
}
// Delete the object.
err = bucket.DeleteObject(objectName)
if err! =nil {
handleError(err)
}
}
参考資料
バケットを作成する
オブジェクトのアップロード
オブジェクトのダウンロード
オブジェクトの一覧表示
オブジェクトの一覧表示に使用する完全なサンプルコードについては、『GitHub』をご参照ください。
オブジェクトを一覧表示するために呼び出すAPI操作の詳細については、「GetBucket (ListObjects) 」をご参照ください。
オブジェクトの削除
オブジェクトの削除に使用される完全なサンプルコードについては、『GitHub』をご参照ください。
オブジェクトを削除するために呼び出すことができるAPI操作の詳細については、「DeleteObject」をご参照ください。