すべてのプロダクト
Search
ドキュメントセンター

:OSS SDK for Goの使用を開始する

最終更新日:Feb 23, 2024

このトピックでは、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操作の詳細については、「PutBucket」をご参照ください。

  • オブジェクトのアップロード

    • オブジェクトのアップロードに使用される完全なサンプルコードについては、『GitHub』をご参照ください。

    • オブジェクトをアップロードするために呼び出すことができるAPI操作の詳細については、「PutObject」をご参照ください。

  • オブジェクトのダウンロード

    • オブジェクトのダウンロードに使用される完全なサンプルコードについては、『GitHub』をご参照ください。

    • オブジェクトをダウンロードするために呼び出すことができるAPI操作の詳細については、「GetObject」をご参照ください。

  • オブジェクトの一覧表示

    • オブジェクトの一覧表示に使用する完全なサンプルコードについては、『GitHub』をご参照ください。

    • オブジェクトを一覧表示するために呼び出すAPI操作の詳細については、「GetBucket (ListObjects) 」をご参照ください。

  • オブジェクトの削除

    • オブジェクトの削除に使用される完全なサンプルコードについては、『GitHub』をご参照ください。

    • オブジェクトを削除するために呼び出すことができるAPI操作の詳細については、「DeleteObject」をご参照ください。