GitHub | OSS Go SDK V2 開発者ガイド | OSS SDK for Go API
クイックスタート
事前準備
Go 1.18 以降が必要です。
go -version コマンドを使用して Go のバージョンを確認します。Go がインストールされていない場合、またはバージョンが 1.18 より古い場合は、Golang をインストールしてください。
SDK のインストール
-
プロジェクトディレクトリを作成し、Go モジュールを初期化します。
mkdir oss-go-example && cd oss-go-example && go mod init oss-go-example -
次のコマンドを実行してパッケージを取得します。コード例が正しく動作するように、最新バージョンを推奨します。
go get github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss -
SDK パッケージをインポートします。
import "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
アクセス認証情報の設定
RAM ユーザーの AccessKey を使用して、アクセス認証情報を設定します。
-
RAM コンソールで、[永続的な AccessKey によるアクセス] を使用して RAM ユーザーを作成し、AccessKey を保存した後、その RAM ユーザーに
AliyunOSSFullAccess権限を付与します。 -
RAM ユーザーの AccessKey を使用して環境変数を設定します。
Linux
-
次のコマンドを実行して、環境変数を
~/.bashrcファイルに追加します。echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc-
次のコマンドを実行して変更を適用します。
source ~/.bashrc -
次のコマンドを実行して、環境変数が設定されていることを確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
-
macOS
-
ターミナルで次のコマンドを実行して、デフォルトのシェルを確認します。
echo $SHELL-
デフォルトのシェルに応じて環境変数を設定します。
Zsh
-
次のコマンドを実行して、環境変数を
~/.zshrcファイルに追加します。echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc -
次のコマンドを実行して変更を適用します。
source ~/.zshrc -
次のコマンドを実行して、環境変数が設定されていることを確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
Bash
-
次のコマンドを実行して、環境変数を
~/.bash_profileファイルに追加します。echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profile -
次のコマンドを実行して変更を適用します。
source ~/.bash_profile -
次のコマンドを実行して、環境変数が設定されていることを確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
-
-
Windows
CMD
-
CMD で次のコマンドを実行します。
setx OSS_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID" setx OSS_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"-
次のコマンドを実行して、環境変数が設定されていることを確認します。
echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET%
-
PowerShell
-
PowerShell で次のコマンドを実行します。
[Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)-
次のコマンドを実行して、環境変数が設定されていることを確認します。
[Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
-
-
クライアントの初期化
コンプライアンスとセキュリティを向上させるためのポリシー変更に伴い、2025 年 3 月 20 日以降、新規 OSS ユーザーは、中国本土リージョンにある OSS バケットでデータ API オペレーションを実行するには、カスタムドメイン名を使用する (CNAME) 必要があります。これらの操作では、デフォルトのパブリックエンドポイントは制限されます。影響を受ける操作の完全なリストについては、公式発表をご参照ください。HTTPS 経由でデータにアクセスする場合、カスタムドメインに有効な SSL 証明書をバインドする必要があります。コンソールでは HTTPS が適用されるため、これはOSS コンソールへのアクセスに必須です。
サンプルコードを実行する前に、<region-id>などのプレースホルダーを、リージョンとエンドポイントの実際の値 (例:ap-southeast-1) に置き換えてください。
package main
import (
"context"
"log"
"strings"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
/*
Go SDK V2 クライアントの初期化設定:
1. 署名バージョン:Go SDK V2 は、セキュリティを強化するためにデフォルトで v4 署名を使用します。
2. リージョン設定:リクエストリージョンを識別するために、Alibaba Cloud のリージョン ID を指定する必要があります。
3. エンドポイント設定:
- endpoint パラメーターを使用して、サービスリクエスト用のカスタムドメイン名を指定できます。
- このパラメーターが指定されていない場合、SDK はリージョン情報に基づいてパブリックエンドポイントを自動的に構築します。
4. プロトコル設定:
- SDK は、デフォルトで HTTPS プロトコルを使用してエンドポイントを構築します。
- HTTP を使用するには、http:// で始まるエンドポイントを指定する必要があります。
*/
func main() {
// 方法 1: リージョンのみを指定 (推奨)。
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion("<region-id>") // バケットが配置されているリージョンを指定します。
// 方法 2: リージョンとエンドポイントの両方を指定。
// cfg := oss.LoadDefaultConfig().
// WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
// WithRegion("<region-id>"). // バケットが配置されているリージョンを指定します。
// WithEndpoint("<endpoint>") // バケットが配置されているリージョンのパブリックエンドポイントを指定します。
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
// アップロードボディを作成します。
body := strings.NewReader("hi oss")
// オブジェクトをアップロードするリクエストを作成します。
request := &oss.PutObjectRequest{
Bucket: oss.Ptr("Your Bucket Name"), // バケットの名前。
Key: oss.Ptr("Your Object Key"), // オブジェクトの名前。
Body: body, // アップロードする文字列コンテンツ。
}
// オブジェクトをアップロードするリクエストを送信します。
result, err := client.PutObject(context.TODO(), request)
if err != nil {
log.Fatalf("failed to put object %v", err)
}
// アップロード操作の結果を出力します。
log.Printf("Status: %#v\n", result.Status)
log.Printf("RequestId: %#v\n", result.ResultCommon.Headers.Get("X-Oss-Request-Id"))
log.Printf("ETag: %#v\n", *result.ETag)
}
成功時の出力:
Status: "200 OK"
RequestId: "68746C5FE001B434303B90B6"
ETag: "B22E0DC370A7F7067FACF5F75D7FA385"
クライアントの設定
カスタムドメイン名
カスタムドメイン名をバインドすることで、ブラウザベースのファイルプレビューや CDN アクセラレーションが可能になります。
サンプルコードを実行する前に、<region-id>プレースホルダーをリージョンとエンドポイント (例: またはap-southeast-1) に置き換えてください。
package main
import (
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
func main() {
// バケットが配置されているリージョンを指定します。
// カスタムドメイン名を指定します。例: https://www.example-***.com
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion("<region-id>").
WithEndpoint("https://www.example-***.com").
WithUseCName(true) // CNAME 経由でカスタムドメイン名を使用するには、このパラメーターを true に設定します。
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
// クライアントを使用して後続の操作を実行します...
}
タイムアウト制御
サンプルコードを実行する前に、<region-id>プレースホルダーをリージョンとエンドポイント (例: またはap-southeast-1) に置き換えてください。
package main
import (
"time"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
func main() {
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion("<region-id>"). // バケットが配置されているリージョン。
WithConnectTimeout(10 * time.Second). // 接続タイムアウト。デフォルトは 5 秒。
WithReadWriteTimeout(30 * time.Second) // 読み取り/書き込みタイムアウト。デフォルトは 10 秒。
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
// クライアントを使用して後続の操作を実行します...
}
最大リトライ回数
OSSClient は、デフォルトで失敗したリクエストを 3 回リトライします。
高負荷なワークロードや不安定なネットワークの場合、WithRetryMaxAttempts を使用してリトライ回数を増やしてください。
サンプルコードを実行する前に、<region-id>プレースホルダーをリージョンとエンドポイント (例: またはap-southeast-1) に置き換えてください。
package main
import (
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
func main() {
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion("<region-id>"). // バケットのリージョンを指定します。
WithRetryMaxAttempts(5) // 最大リトライ回数を設定します。デフォルトは 3 です。
// OSSClient インスタンスを作成します。
client := oss.NewClient(cfg)
// クライアントを使用して後続の操作を実行します...
}
HTTP/HTTPS プロトコル
WithDisableSSL(true) を使用して HTTPS プロトコルを無効にします。
サンプルコードを実行する前に、<region-id>プレースホルダーを実際のリージョンとエンドポイント (例: またはap-southeast-1) に置き換えてください。
package main
import (
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
func main() {
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion("<region-id>"). // バケットが配置されているリージョンを指定します。
WithDisableSSL(true) // デフォルトで有効になっている HTTPS プロトコルを無効にします。
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
// クライアントを使用して後続の操作を実行します...
}
プロキシサーバー
WithProxyHost を使用して、OSS リクエストをプロキシサーバー経由でルーティングします。
サンプルコードを実行する前に、<region-id>プレースホルダーをリージョンとエンドポイント (例:ap-southeast-1) に置き換えてください。
package main
import (
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
func main() {
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion("<region-id>"). // バケットが配置されているリージョンを指定します。
WithUserAgent("aliyun-sdk-go"). // HTTP User-Agent ヘッダーのユーザーエージェントを設定します。
WithProxyHost("http://user:passswd@proxy.example-***.com") // プロキシサーバーを設定します。例: "http://user:passswd@proxy.example-***.com"。
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
// クライアントを使用して後続の操作を実行します...
}
内部エンドポイント
アプリケーションがバケットと同じリージョン内の Elastic Compute Service (ECS) インスタンスで実行されている場合、内部エンドポイントを使用すると、コストとレイテンシーを削減できます。
サンプルコードを実行する前に、<region-id>などのプレースホルダーをリージョンとエンドポイント (例: またはap-southeast-1) に置き換えてください。
package main
import (
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
func main()
// 方法 1: リージョンを指定し、WithUseInternalEndpoint を true に設定します。
// バケットが配置されているリージョンを指定します。
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion("<region-id>").
WithUseInternalEndpoint(true)
// 方法 2: リージョンとエンドポイントを直接指定します。
// バケットのリージョンに対応する内部エンドポイントを指定します。
// cfg := oss.LoadDefaultConfig().
// WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
// WithRegion("<region-id>").
// WithEndpoint("<endpoint>")
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
// このクライアントを後続の操作に使用します。
}
転送アクセラレーションエンドポイント
サンプルコードを実行する前に、<region-id>プレースホルダーをリージョンとエンドポイントの ID (例:ap-southeast-1) に置き換えてください。
package main
import (
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
func main() {
// 方法 1: リージョンを指定し、WithUseAccelerateEndpoint を true に設定します。
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion("<region-id>").
WithUseAccelerateEndpoint(true)
// 方法 2: リージョンとエンドポイントを直接指定します。
// cfg := oss.LoadDefaultConfig().
// WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
// WithRegion("<region-id>").
// WithEndpoint("https://oss-accelerate.aliyuncs.com").
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
// クライアントを使用して操作を実行します...
}
プライベートドメイン
サンプルコードを実行する前に、<region-id>プレースホルダーをリージョンとエンドポイントに基づいて正しい ID (例:ap-southeast-1) に置き換えてください。
package main
import (
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
func main() {
// バケットを含むリージョンを指定します。
// プライベートドメインを指定します。例: https://service.corp.example.com
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion("<region-id>").
WithEndpoint("https://service.corp.example.com")
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
// クライアントを使用して後続の操作を実行します...
}
ガバメントクラウドのエンドポイント
次の例は、ガバメントクラウドのエンドポイントを使用するように OSS クライアントを設定する方法を示しています。
package main
import (
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
func main() {
// バケットが配置されているリージョンと、それに対応する内部エンドポイントを指定します。
// たとえば、中国北部 2 Ali Gov 1 リージョンの場合、Region を "cn-north-2-gov-1" に、Endpoint を "https://oss-cn-north-2-gov-1-internal.aliyuncs.com" に設定します。
// HTTP プロトコルを使用するには、HTTP エンドポイント "http://oss-cn-north-2-gov-1-internal.aliyuncs.com" を使用します。
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion("cn-north-2-gov-1").
WithEndpoint("https://oss-cn-north-2-gov-1-internal.aliyuncs.com")
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
// クライアントを使用して後続の操作を実行します...
}
CloudBox バケットへのアクセス
サンプルコードを実行する前に、<region-id>プレースホルダーを実際のリージョンとエンドポイント (例:ap-southeast-1) に置き換えてください。
package main
import (
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
func main() {
// 方法 1: CloudBox ID を自動的に検出します。
// バケットが配置されているリージョンを指定します。
// エンドポイントを CloudBox バケットのデータドメイン名に設定します。例: http://cb-xxxxxx.<region-id>.oss-cloudbox.aliyuncs.com
// WithEnableAutoDetectCloudBoxId を true に設定して、CloudBox ID を自動的に検出します。
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithEndpoint("http://cb-xxxxxx.<region-id>.oss-cloudbox.aliyuncs.com").
WithEnableAutoDetectCloudBoxId(true)
// 方法 2: CloudBox ID を手動で設定します。
// バケットが配置されているリージョンを指定します。
// エンドポイントを CloudBox バケットのデータドメイン名に設定します。例: http://cb-xxxxxx.<region-id>.oss-cloudbox.aliyuncs.com
// CloudBox ID を手動で指定します。例: cb-xxxxxx
// cfg := oss.LoadDefaultConfig().
// WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
// WithEndpoint("http://cb-xxxxxx.<region-id>.oss-cloudbox.aliyuncs.com").
// WithCloudBoxId("cb-xxxxxx")
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
// クライアントを使用して OSS 操作を実行します...
}
HTTP クライアントのカスタマイズ
標準のパラメーターでは不十分な場合、WithHTTPClient を使用してデフォルトの HTTP クライアントを置き換えます。
サンプルコードを実行する前に、<region-id>プレースホルダーを実際のリージョンとエンドポイント (例: またはap-southeast-1) に置き換えてください。
package main
import (
"crypto/tls"
"net/http"
"time"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/transport"
)
func main() {
// 一般的なタイムアウトやその他の設定。
transConfig := transport.Config{
// 接続タイムアウト。デフォルト: 5 秒。
ConnectTimeout: oss.Ptr(10 * time.Second),
// 接続からのデータ読み取りおよび書き込みのタイムアウト。デフォルト: 10 秒。
ReadWriteTimeout: oss.Ptr(20 * time.Second),
// アイドル接続のタイムアウト。デフォルト: 50 秒。
IdleConnectionTimeout: oss.Ptr(40 * time.Second),
// ネットワーク接続のキープアライブタイムアウト。デフォルト: 30 秒。
KeepAliveTimeout: oss.Ptr(40 * time.Second),
// HTTP リダイレクトを有効にします。デフォルトでは無効です。
EnabledRedirect: oss.Ptr(true),
}
// http.Transport の設定。
var transports []func(*http.Transport)
// 最大接続数。デフォルト: 100。
transports = append(transports, transport.MaxConnections(200))
// リクエストに 'Expect: 100-Continue' ヘッダーがある場合に、リクエストヘッダーが書き込まれた後、サーバーの最初のレスポンスヘッダーを待つ最大時間。デフォルト: 1 秒。
transports = append(transports, transport.ExpectContinueTimeout(2*time.Second))
// 最小 TLS バージョン。デフォルト: TLS 1.2。
transports = append(transports, transport.TLSMinVersion(tls.VersionTLS13))
// 証明書の検証をスキップします。デフォルトは false (証明書は検証されます)。
transports = append(transports, transport.InsecureSkipVerify(true))
// その他のトランスポートパラメーターについては、https://pkg.go.dev/net/http#Transport をご参照ください。
// カスタム HTTP クライアントを作成します。
customClient := transport.NewHttpClient(&transConfig, transports...)
cfg := oss.LoadDefaultConfig().
WithHttpClient(customClient).
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion("<region-id>")
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
// クライアントを使用して後続の操作を実行します...
}
アクセス認証情報の設定
認証のニーズに合った認証情報メソッドを選択してください。
RAM ユーザーの AK の使用
安全な環境での長期アクセスには、RAM ユーザーの AccessKey ペア (AccessKey ID と AccessKey Secret) で認証情報プロバイダーを初期化します。手動でのキー管理はセキュリティリスクを高めます。
-
Alibaba Cloud アカウント (root ユーザー) はすべてのリソースに対する完全な権限を持っています。AccessKey ペアが漏洩すると、重大なセキュリティリスクが生じます。最小限の権限を持つ RAM ユーザーの AccessKey ペアを使用してください。
-
RAM ユーザーの AccessKey ペアを作成するには、「AccessKey の作成」をご参照ください。AccessKey ID と AccessKey Secret は作成時にのみ表示されます。安全に保存してください。AccessKey Secret を忘れた場合は、新しい AccessKey ペアを作成する必要があります。
環境変数
-
RAM ユーザーの AccessKey ペアを使用して環境変数を設定します。
Linux
-
CLI で次のコマンドを実行して、環境変数の設定を
~/.bashrcファイルに追加します。echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc-
変更を適用します。
source ~/.bashrc -
環境変数が有効になったかどうかを確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
-
macOS
-
ターミナルで次のコマンドを実行して、デフォルトのシェルタイプを表示します。
echo $SHELL-
デフォルトのシェルタイプに基づいて環境変数を設定します。
Zsh
-
次のコマンドを実行して、環境変数の設定を
~/.zshrcファイルに追加します。echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc -
変更を適用します。
source ~/.zshrc -
環境変数が有効になったかどうかを確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
Bash
-
次のコマンドを実行して、環境変数の設定を
~/.bash_profileファイルに追加します。echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profile -
変更を適用します。
source ~/.bash_profile -
環境変数が有効になったかどうかを確認します。
echo $OSS_ACCESS_KEY_ID echo $OSS_ACCESS_KEY_SECRET
-
-
Windows
CMD
-
CMD で次のコマンドを実行します。
setx OSS_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID" setx OSS_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"-
環境変数が有効になったかどうかを確認します。
echo %OSS_ACCESS_KEY_ID% echo %OSS_ACCESS_KEY_SECRET%
-
PowerShell
-
PowerShell で次のコマンドを実行します。
[Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)-
環境変数が有効になったかどうかを確認します。
[Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User) [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
-
-
-
システム環境変数を設定した後、IDE、コマンドラインインターフェイス、デスクトップアプリケーション、バックグラウンドサービスなどの開発環境を再起動または更新して、新しい変数をロードします。
-
環境変数から認証情報をロードします。
このサンプルコードを実行する前に、
<region-id>プレースホルダーを実際のリージョンとエンドポイント (例: またはap-southeast-1) に置き換えてください。package main import ( "log" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" ) func main() { // 要件に応じてリージョンを設定します。 region := "<region-id>" // 環境変数からアクセス認証情報をロードします。このコードを実行する前に、OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 provider := credentials.NewEnvironmentVariableCredentialsProvider() // デフォルトの設定をロードし、認証情報プロバイダーとリージョンを設定します。 cfg := oss.LoadDefaultConfig(). WithCredentialsProvider(provider). WithRegion(region) // OSS クライアントを作成します。 client := oss.NewClient(cfg) log.Printf("ossclient: %v", client) }
静的認証情報
次のコードは、アプリケーションに静的な認証情報をハードコーディングする方法を示しています。
本番環境では、アプリケーションコードにアクセス認証情報を埋め込まないでください。この方法はテスト目的のみです。
このサンプルコードを実行する前に、<region-id>プレースホルダーを実際のリージョンとエンドポイント (例: またはap-southeast-1) に置き換えてください。
package main
import (
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
func main() {
// 要件に応じてリージョンを設定します。
region := "<region-id>"
// RAM ユーザーの AccessKey ID と AccessKey Secret を指定します。
accessKeyID := "yourAccessKeyID"
accessKeySecret := "yourAccessKeySecret"
// NewStaticCredentialsProvider メソッドを使用して、AccessKey ID と AccessKey Secret を直接設定します。
provider := credentials.NewStaticCredentialsProvider(accessKeyID, accessKeySecret)
// デフォルトの設定をロードし、認証情報プロバイダーとリージョンを設定します。
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(provider).
WithRegion(region)
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
log.Printf("ossclient: %v", client)
}
STS 一時アクセス認証情報
一時的な OSS アクセスには、STS 認証情報 (AccessKey ID、AccessKey Secret、およびセキュリティトークン) で認証情報プロバイダーを初期化します。この方法では、手動でのトークン管理と更新が必要です。
-
API オペレーションを呼び出して一時的なアクセス認証情報を迅速に取得するには、「AssumeRole - ロールの一時的なアクセス認証情報を取得する」をご参照ください。
-
SDK を使用して一時的なアクセス認証情報を取得するには、「STS 一時アクセス認証情報を使用して OSS にアクセスする」をご参照ください。
-
STS トークンを生成する際には、有効期限を指定する必要があります。STS トークンは有効期限が切れると使用できなくなります。
-
STS サービスエンドポイントのリストについては、「サービスエンドポイント」をご参照ください。
環境変数
-
一時的なアクセス認証情報で環境変数を設定します。
Mac OS X/Linux/UNIX
警告-
ここで使用される認証情報は、STS からの一時的なアクセス認証情報 (AccessKey ID、AccessKey Secret、およびセキュリティトークン) であり、RAM ユーザーの AccessKey ID と AccessKey Secret ではないことに注意してください。
-
STS からの AccessKey ID は `STS.` で始まります。例: `STS.****************`。
export OSS_ACCESS_KEY_ID=<STS_ACCESS_KEY_ID> export OSS_ACCESS_KEY_SECRET=<STS_ACCESS_KEY_SECRET> export OSS_SESSION_TOKEN=<STS_SECURITY_TOKEN>Windows
警告-
ここで使用される認証情報は、STS からの一時的なアクセス認証情報 (AccessKey ID、AccessKey Secret、およびセキュリティトークン) であり、RAM ユーザーの AccessKey ID と AccessKey Secret ではないことに注意してください。
-
STS からの AccessKey ID は `STS.` で始まります。例: `STS.****************`。
set OSS_ACCESS_KEY_ID=<STS_ACCESS_KEY_ID> set OSS_ACCESS_KEY_SECRET=<STS_ACCESS_KEY_SECRET> set OSS_SESSION_TOKEN=<STS_SECURITY_TOKEN> -
-
環境変数から認証情報をロードします。
サンプルコードを実行する前に、
<region-id>プレースホルダーを実際のリージョンとエンドポイント (例: またはap-southeast-1) に置き換えてください。package main import ( "log" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" ) func main() { // 要件に応じてリージョンを設定します。 region := "<region-id>" // 環境変数からアクセス認証情報をロードします。このコードを実行する前に、OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET、および OSS_SESSION_TOKEN 環境変数が設定されていることを確認してください。 provider := credentials.NewEnvironmentVariableCredentialsProvider() // デフォルトの設定をロードし、認証情報プロバイダーとリージョンを設定します。 cfg := oss.LoadDefaultConfig(). WithCredentialsProvider(provider). WithRegion(region) // OSS クライアントを作成します。 client := oss.NewClient(cfg) log.Printf("ossclient: %v", client) }
静的認証情報
アプリケーションに一時的なアクセス認証情報をハードコーディングできます。
本番環境のコードにアクセス認証情報を埋め込まないでください。この方法はテスト目的のみです。
サンプルコードを実行する前に、<region-id>プレースホルダーを実際のリージョンとエンドポイント (例: またはap-southeast-1) に置き換えてください。
package main
import (
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
func main() {
// 要件に応じてリージョンを設定します。
region := "<region-id>"
// STS からの一時的なアクセス認証情報 (AccessKey ID、AccessKey Secret、およびセキュリティトークン) を使用します。
// RAM ユーザーの認証情報は使用しないでください。
// STS からの AccessKey ID は `STS.` で始まることに注意してください。
accessKeyID := "STS.****************"
accessKeySecret := "yourAccessKeySecret"
// STS セキュリティトークンを指定します。
stsToken := "yourSecurityToken"
// NewStaticCredentialsProvider メソッドを使用して、AccessKey ID、AccessKey Secret、および STS トークンを直接設定します。
provider := credentials.NewStaticCredentialsProvider(accessKeyID, accessKeySecret, stsToken)
// デフォルトの設定をロードし、認証情報プロバイダーとリージョンを設定します。
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(provider).
WithRegion(region)
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
log.Printf("ossclient: %v", client)
}
RAMRoleARN の使用
クロスアカウントまたは委任された OSS アクセスには、RAMRoleARN を使用します。RAM ロールの ARN を指定すると、Credentials ツールが `AssumeRole` API を介して STS トークンを自動的に取得および更新します。policy パラメーターを使用して権限を制限します。
-
認証情報の依存関係を追加します。
go get github.com/aliyun/credentials-go/credentials -
アクセス認証情報を設定します。
サンプルコードを実行する前に、
<region-id>プレースホルダーを実際のリージョン (例: またはap-southeast-1) に置き換えてください。package main import ( "context" "log" "os" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" openapicred "github.com/aliyun/credentials-go/credentials" ) func main() { // 要件に応じてリージョンを設定します。 region := "<region-id>" config := new(openapicred.Config). // 認証情報のタイプを指定します。この値は ram_role_arn でなければなりません。 SetType("ram_role_arn"). // 環境変数から RAM ユーザーのアクセスキー ID とアクセスキーシークレットを取得します。 SetAccessKeyId(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")). SetAccessKeySecret(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")). // 以下のパラメーターはプレースホルダー文字列で設定されています。本番環境では、これらの値を環境変数などの安全なソースからロードする必要があります。 // 引き受ける RAM ロールの ARN を指定します。フォーマットは acs:ram::$accountID:role/$roleName です。 SetRoleArn("ALIBABA_CLOUD_ROLE_ARN"). // RoleArn の従来の環境変数は ALIBABA_CLOUD_ROLE_ARN です。 // 異なるトークンを区別するために、カスタムのロールセッション名を指定します。 SetRoleSessionName("ALIBABA_CLOUD_ROLE_SESSION_NAME"). // RoleSessionName の従来の環境変数は ALIBABA_CLOUD_ROLE_SESSION_NAME です。 // (オプション) STS トークンの権限を制限します。 SetPolicy("Policy"). // (オプション) STS トークンの有効期間を指定します。 SetRoleSessionExpiration(3600) arnCredential, gerr := openapicred.NewCredential(config) provider := credentials.CredentialsProviderFunc(func(ctx context.Context) (credentials.Credentials, error) { if gerr != nil { return credentials.Credentials{}, gerr } cred, err := arnCredential.GetCredential() if err != nil { return credentials.Credentials{}, err } return credentials.Credentials{ AccessKeyID: *cred.AccessKeyId, AccessKeySecret: *cred.AccessKeySecret, SecurityToken: *cred.SecurityToken, }, nil }) // デフォルトの設定をロードし、認証情報プロバイダーとリージョンを設定します。 cfg := oss.LoadDefaultConfig(). WithCredentialsProvider(provider). WithRegion(region) // OSS クライアントを作成します。 client := oss.NewClient(cfg) log.Printf("ossclient: %v", client) }
ECSRAMRole の使用
ECS、ECI、または Container Service for Kubernetes (ACK) のワーカーノード上のアプリケーションには、ECSRAMRole を使用します。ECS、ECI、または ACK のワーカーノードにロールを関連付けることで、STS トークンを自動的に更新し、手動での認証情報管理を不要にします。続行する前にロールを作成してください。
-
認証情報の依存関係を追加します。
go get github.com/aliyun/credentials-go/credentials -
アクセス認証情報を設定します。
サンプルコードを実行する前に、
<region-id>プレースホルダーをリージョンとエンドポイント (例: またはap-southeast-1) に置き換えてください。package main import ( "context" "log" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" openapicred "github.com/aliyun/credentials-go/credentials" ) func main() { // リージョンを設定します。 region := "<region-id>" config := new(openapicred.Config). // 認証情報のタイプを指定します。値を ecs_ram_role に設定します。 SetType("ecs_ram_role"). // (オプション) ロール名を指定します。省略した場合、OSS クライアントは自動的に 1 つを検出します。リクエストを減らすためにロール名を指定することを推奨します。 SetRoleName("RoleName") arnCredential, gerr := openapicred.NewCredential(config) provider := credentials.CredentialsProviderFunc(func(ctx context.Context) (credentials.Credentials, error) { if gerr != nil { return credentials.Credentials{}, gerr } cred, err := arnCredential.GetCredential() if err != nil { return credentials.Credentials{}, err } return credentials.Credentials{ AccessKeyID: *cred.AccessKeyId, AccessKeySecret: *cred.AccessKeySecret, SecurityToken: *cred.SecurityToken, }, nil }) // デフォルトの設定をロードし、認証情報プロバイダーとリージョンを設定します。 cfg := oss.LoadDefaultConfig(). WithCredentialsProvider(provider). WithRegion(region) // OSS クライアントを作成します。 client := oss.NewClient(cfg) log.Printf("ossclient: %v", client) }
OIDCRoleARN の使用
Container Service for Kubernetes (ACK) のワーカーノード上の信頼できないアプリケーションには、ノードのメタデータサービストークンを共有する代わりに、OIDC ベースの RRSA を使用して Pod レベルの最小権限を強制します。ACK は Pod ごとに OIDC トークンファイルをマウントします。Credentials ツールはそれを読み取り、`AssumeRoleWithOIDC` を呼び出して STS トークンを自動的に取得します。RRSA を使用してサービスアカウントの RAM 権限を設定し、Pod の権限を分離します。
-
認証情報の依存関係を追加します。
go get github.com/aliyun/credentials-go/credentials -
アクセス認証情報を設定します。
サンプルコードを実行する前に、
<region-id>プレースホルダーをリージョンとエンドポイント (例: またはap-southeast-1) に置き換えてください。package main import ( "context" "log" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" openapicred "github.com/aliyun/credentials-go/credentials" ) func main() { // リージョンを指定します。 region := "<region-id>" config := new(openapicred.Config). // 認証情報のタイプ。 "oidc_role_arn" でなければなりません。 SetType("oidc_role_arn"). // OIDC プロバイダーの ARN を指定します。フォーマットは acs:ram::account-id:oidc-provider/provider-name です。 SetOIDCProviderArn("OIDCProviderArn"). // OIDC トークンファイルのパスを指定します。 SetOIDCTokenFilePath("OIDCTokenFilePath"). // トークンを区別するためにカスタムのロールセッション名を指定します。 SetRoleSessionName("RoleSessionName"). // RoleSessionName のデフォルトの環境変数は ALIBABA_CLOUD_ROLE_SESSION_NAME です。 // (オプション) ロールを引き受ける際に使用するポリシーを指定します。 SetPolicy("Policy"). // 引き受ける RAM ロールの ARN。フォーマットは acs:ram::account-id:role/role-name です。 SetRoleArn("RoleArn"). // セッション期間 (秒)。 SetSessionExpiration(3600) arnCredential, gerr := openapicred.NewCredential(config) provider := credentials.CredentialsProviderFunc(func(ctx context.Context) (credentials.Credentials, error) { if gerr != nil { return credentials.Credentials{}, gerr } cred, err := arnCredential.GetCredential() if err != nil { return credentials.Credentials{}, err } return credentials.Credentials{ AccessKeyID: *cred.AccessKeyId, AccessKeySecret: *cred.AccessKeySecret, SecurityToken: *cred.SecurityToken, }, nil }) // デフォルトの設定をロードし、認証情報プロバイダーとリージョンを設定します。 cfg := oss.LoadDefaultConfig(). WithCredentialsProvider(provider). WithRegion(region) // OSS クライアントを作成します。 client := oss.NewClient(cfg) log.Printf("ossclient: %v", client) }
カスタム認証情報プロバイダー
標準のメソッドが要件を満たさない場合は、カスタムプロバイダーを実装します。
-
credentials.CredentialsProviderFunc インターフェイスを使用する
サンプルコードを実行する前に、
<region-id>プレースホルダーを有効なリージョンとエンドポイント (例:ap-southeast-1) に置き換えてください。package main import ( "context" "log" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" ) func main() { // 要件に応じてリージョンを設定します。 region := "<region-id>" // カスタム認証情報プロバイダーを作成します。 provider := credentials.CredentialsProviderFunc(func(ctx context.Context) (credentials.Credentials, error) { // 長期的な認証情報を返します。 return credentials.Credentials{AccessKeyID: "id", AccessKeySecret: "secret"}, nil // 一時的な認証情報を返します。 //return credentials.Credentials{AccessKeyID: "id", AccessKeySecret: "secret", SecurityToken: "token"}, nil }) // デフォルトの設定をロードし、認証情報プロバイダーとリージョンを設定します。 cfg := oss.LoadDefaultConfig(). WithCredentialsProvider(provider). WithRegion(region) // OSS クライアントを作成します。 client := oss.NewClient(cfg) log.Printf("ossclient: %v", client) } -
credentials.CredentialsProvider インターフェイスを実装する
サンプルコードを実行する前に、
<region-id>プレースホルダーを有効なリージョンとエンドポイント (例:ap-southeast-1) に置き換えてください。package main import ( "context" "log" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" ) type CustomerCredentialsProvider struct { // TODO } func NewCustomerCredentialsProvider() CustomerCredentialsProvider { return CustomerCredentialsProvider{} } func (s CustomerCredentialsProvider) GetCredentials(_ context.Context) (credentials.Credentials, error) { // 長期的な認証情報を返します。 return credentials.Credentials{AccessKeyID: "id", AccessKeySecret: "secret"}, nil // 一時的な認証情報を返します。 //return credentials.Credentials{AccessKeyID: "id", AccessKeySecret: "secret", SecurityToken: "token"}, nil } func main() { // 要件に応じてリージョンを設定します。 region := "<region-id>" // カスタム認証情報プロバイダーを作成します。 provider := NewCustomerCredentialsProvider() // デフォルトの設定をロードし、認証情報プロバイダーとリージョンを設定します。 cfg := oss.LoadDefaultConfig(). WithCredentialsProvider(provider). WithRegion(region) // OSS クライアントを作成します。 client := oss.NewClient(cfg) log.Printf("ossclient: %v", client) }
デフォルトの認証情報プロバイダーチェーンの使用
パラメーターが指定されていない場合、SDK はデフォルトの認証情報プロバイダーチェーンを使用して認証情報を自動的に検索します。
サンプルコードを実行する前に、<region-id>プレースホルダーをリージョンとエンドポイント (例: またはap-southeast-1) に置き換えてください。
package main
import (
"context"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
osscred "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
"github.com/aliyun/credentials-go/credentials"
)
func main() {
// 要件に応じてリージョンを設定します。
region := "<region-id>"
// nil を渡すと、デフォルトの認証情報プロバイダーチェーンを使用して認証情報を検索します。
arnCredential, gerr := credentials.NewCredential(nil)
provider := osscred.CredentialsProviderFunc(func(ctx context.Context) (osscred.Credentials, error) {
if gerr != nil {
return osscred.Credentials{}, gerr
}
cred, err := arnCredential.GetCredential()
if err != nil {
return osscred.Credentials{}, err
}
return osscred.Credentials{
AccessKeyID: *cred.AccessKeyId,
AccessKeySecret: *cred.AccessKeySecret,
SecurityToken: *cred.SecurityToken,
}, nil
})
// デフォルトの設定をロードし、認証情報プロバイダーとリージョンを設定します。
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(provider).
WithRegion(region)
// OSS クライアントを作成します。
client := oss.NewClient(cfg)
log.Printf("ossclient: %v", client)
}
トラブルシューティング
OSS のエラーには、HTTP ステータスコード、メッセージ、リクエスト ID、EC エラーコードが含まれます。EC コードを使用して根本原因を特定します。
-
たとえば、次のコードを使用して存在しないオブジェクトをダウンロードする場合:
package main import ( "context" "flag" "io" "log" "os" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" ) // グローバル変数を定義します。 var ( region string // バケットが配置されているリージョン。 bucketName string // バケットの名前。 objectName string // オブジェクトの名前。 ) // init 関数はコマンドラインパラメーターを初期化します。 func init() { flag.StringVar(®ion, "region", "", "The region in which the bucket is located.") flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.") flag.StringVar(&objectName, "object", "", "The name of the object.") } func main() { // コマンドラインパラメーターを解析します。 flag.Parse() // バケット名が空かどうかを確認します。 if len(bucketName) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, bucket name required") } // リージョンが空かどうかを確認します。 if len(region) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, region required") } // オブジェクト名が空かどうかを確認します。 if len(objectName) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, object name required") } // 出力ファイルパスを定義します。 outputFile := "downloaded.txt" // これを目的のファイルパスに置き換えます。 // デフォルトの設定をロードし、認証情報プロバイダーとリージョンを設定します。 cfg := oss.LoadDefaultConfig(). WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). WithRegion(region) // OSS クライアントを作成します。 client := oss.NewClient(cfg) // オブジェクトを取得するリクエストを作成します。 request := &oss.GetObjectRequest{ Bucket: oss.Ptr(bucketName), // バケットの名前。 Key: oss.Ptr(objectName), // オブジェクトの名前。 } // オブジェクトを取得し、結果を処理します。 result, err := client.GetObject(context.TODO(), request) if err != nil { log.Fatalf("failed to get object %v", err) } defer result.Body.Close() // 関数が終了するときにレスポンスボディが閉じられることを確認します。 // オブジェクトのコンテンツ全体を一度に読み取ります。 data, err := io.ReadAll(result.Body) if err != nil { log.Fatalf("failed to read object %v", err) } // コンテンツをファイルに書き込みます。 err = os.WriteFile(outputFile, data, 0644) if err != nil { log.Fatalf("failed to write to output file %v", err) } log.Printf("file downloaded successfully to %s", outputFile) } -
以下は返されたエラーメッセージの例です。これには、エラーの原因を一意に識別する EC エラーコード 'EC': '0026-00000001' が含まれています。
2025/03/07 15:13:46 failed to get object operation error GetObject: Error returned by Service. Http Status Code: 404. Error Code: NoSuchKey. Request Id: 67CA9CAADC44E03938AD91F0. Message: The specified key does not exist.. EC: 0026-00000001. Timestamp: 2025-03-07 07:13:46 +0000 UTC. Request Endpoint: GET https://xxx.oss-cn-hangzhou.aliyuncs.com/asdgkhfk. -
例の EC エラーコードを使用してエラーのトラブルシューティングを行うには、次の手順に従います:
-
OpenAPI 自己診断プラットフォームを開きます。
-
検索ボックスに EC エラーコード (例: 0026-00000001) を入力します。次に、リクエスト ID を含むエラーメッセージをテキストボックスに貼り付け、[診断] をクリックします。
-
検索結果には、エラーの原因とその解決策が表示されます。EC エラーコード
0026-00000001の場合、診断はターゲットオブジェクトが存在しないことを示します。考えられる原因には、オブジェクトのアップロードの失敗、ライフサイクルルールによる削除、別のユーザーによる削除、またはクロスリージョンレプリケーションによる同期削除が含まれます。解決策は、HeadObject でオブジェクトの存在を確認し、ListObjectVersions でバージョン情報を表示し、オブジェクトの命名規則、ライフサイクルルール、ユーザー権限、およびクロスリージョンレプリケーションルールを確認することです。詳細については、NoSuchKey および NoSuchVersion をご参照ください。
-
サンプルコード
以下のサンプルコードを参照または使用してください。
|
説明 |
サンプルファイル |
|
- |
|
|
- |
|
|
- |
|
|
- |