アップロードコールバックを設定するには、必要なコールバックパラメーターをObject Storage Service (OSS) に送信されるアップロードリクエストに追加するだけです。
サーバ名表示 (SNI) は、コールバック要求が開始されたときに送信することができる。 詳細については、「コールバック」をご参照ください。
使用上の注意
WebpackやBrowserifyなどのパッケージングツールを使用する場合は、npm install ali-OSSコマンドを実行して、oss SDK for Browser.jsをインストールします。
ブラウザからOSSバケットにアクセスしたいが、バケットにCORSルールが設定されていない場合、ブラウザはリクエストを拒否します。 したがって、ブラウザからバケットにアクセスする場合は、バケットのCORSルールを設定する必要があります。 詳細については、「インストール」をご参照ください。
ほとんどの場合、ブラウザではOSS SDK for Browser.jsが使用されます。 AccessKeyペアが公開されないようにするには、Security Token Service (STS) から取得した一時的なアクセス資格情報を使用してOSSにアクセスすることを推奨します。
一時的なアクセス資格情報は、AccessKeyペアとセキュリティトークンで構成されます。 AccessKeyペアは、AccessKey IDとAccessKeyシークレットで構成されます。 一時的なアクセス資格情報を取得する方法の詳細については、「一時的なアクセス権限付与にSTSを使用する」をご参照ください。
例
次のサンプルコードは、アップロードコールバックを設定する方法の例を示しています。
package main
import (
"log"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables. Before you run the code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
log.Fatalf("Failed to create credentials provider: %v", err)
}
// Create an OSSClient instance.
// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. Specify your actual endpoint.
endpoint := "yourEndpoint"
client, err := oss.New(endpoint, "", "", oss.SetCredentialsProvider(&provider))
if err != nil {
log.Fatalf("Failed to create OSS client: %v", err)
}
// Specify the name of the bucket.
bucketName := "examplebucket"
bucket, err := client.Bucket(bucketName)
if err != nil {
log.Fatalf("Failed to get bucket '%s': %v", bucketName, err)
}
// Specify the full path of the directory that you want to delete. Do not include the bucket name in the full path.
prefix := oss.Prefix("log/")
marker := oss.Marker("")
count := 0
for {
// List all objects whose names contain a specific prefix.
lor, err := bucket.ListObjects(marker, prefix)
if err != nil {
log.Fatalf("Failed to list objects in bucket '%s' with prefix '%s': %v", bucketName, prefix, err)
}
objects := []string{}
for _, object := range lor.Objects {
objects = append(objects, object.Key)
}
if len(objects) == 0 {
break
}
// Delete the directory and all objects stored in the directory.
// Set the oss.DeleteObjectsQuiet parameter to true. This setting indicates that OSS does not return a message after objects are deleted.
delRes, err := bucket.DeleteObjects(objects, oss.DeleteObjectsQuiet(true))
if err != nil {
log.Fatalf("Failed to delete objects in bucket '%s': %v", bucketName, err)
}
if len(delRes.DeletedObjects) > 0 {
log.Fatalf("Some objects failed to delete: %v", delRes.DeletedObjects)
}
count += len(objects)
// Update the pagination parameters.
marker = oss.Marker(lor.NextMarker)
if !lor.IsTruncated {
break
}
}
log.Printf("Success, total delete object count: %d", count)
}
関連ドキュメント
アップロードコールバックを設定するために呼び出すことができるAPI操作の詳細については、「コールバック」をご参照ください。