Ağ kararsızlığı veya program hataları nedeniyle işlemin kesintiye uğraması riski bulunan 5 GB'tan büyük nesneleri yüklemek için kalan yüklemeyi sürdürme özelliğini kullanın. Nesne parçalara bölünür ve paralel olarak yüklenir; ilerleme durumu bir kontrol noktası dosyasında izlenir. Bir parça başarısız olursa yükleme işlemi kontrol noktasından devam eder. Tüm parçalar yüklendikten sonra birleşerek eksiksiz bir nesne oluşturulur.
Kullanım notları
Bu konuda Çin (Hangzhou) bölgesinin genel uç noktası kullanılmaktadır. OSS ile aynı bölgedeki diğer Alibaba Cloud hizmetlerinden OSS'ye erişmek istiyorsanız dahili uç nokta kullanın. OSS bölgeleri ve uç noktaları hakkında daha fazla bilgi için bkz. Bölgeler ve uç noktalar.
Bu konuda erişim kimlik bilgileri ortam değişkenlerinden alınır. Erişim kimlik bilgilerinin nasıl yapılandırılacağı hakkında daha fazla bilgi için bkz. Erişim kimlik bilgilerini yapılandırma.
Bu konu, bir OSS uç noktası kullanarak bir OSSClient örneği oluşturmayı göstermektedir. Özel etki alanı kullanma veya Security Token Service (STS) kimlik bilgileriyle kimlik doğrulama gibi alternatif yapılandırmalar için bkz. İstemciyi yapılandırma (Go SDK V1).
Kalan yüklemeyi sürdürme özelliğini kullanmak için
oss:PutObjectiznine sahip olmanız gerekir. Daha fazla bilgi için bkz. Özel ilke atama.Yükleme ilerlemesi kontrol noktası dosyasında kaydedilir. Bu dosya üzerinde yazma izninizin bulunduğundan emin olun.
Kontrol noktası dosyası değiştirilmemesi gereken bir sağlama toplamı içerir. Dosya hasar görürse tüm parçaları yeniden yükleyin.
Yükleme sırasında yerel dosya değişirse tüm parçaları yeniden yükleyin.
Uygulama
Kalan yüklemeyi sürdürme işlemini gerçekleştirmek için aşağıdaki parametrelerle Bucket.UploadFile yöntemini çağırın.
|
Parametre |
Açıklama |
|
objectKey |
Nesne adıdır. objectName parametresine eşdeğerdir. |
|
filePath |
Yüklenecek yerel dosyanın yoludur. |
|
partSize |
Her bir parçanın boyutudur. Geçerli değerler: 100 KB ila 5 GB. Varsayılan değer: 100 KB. |
|
options |
Yükleme seçenekleri:
Not
Seçenekleri kullanarak nesne meta verilerini de ayarlayabilirsiniz. Nesne meta verilerini yönetme. |
Örnekler
Aşağıdaki örnek kod, kalan yüklemeyi sürdürme işleminin nasıl gerçekleştirileceğini göstermektedir:
package main
import (
"log"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables. Before you run the sample 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.
// Specify the region in which the bucket is located. For example, if your bucket is located in the China (Hangzhou) region, set the region to cn-hangzhou. Specify your actual endpoint.
clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
clientOptions = append(clientOptions, oss.Region("yourRegion"))
// Specify the signature version.
clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
client, err := oss.New("yourEndpoint", "", "", clientOptions...)
if err != nil {
log.Fatalf("Failed to create OSS client: %v", err)
}
// Specify the name of the bucket. Example: examplebucket.
bucket, err := client.Bucket("examplebucket")
if err != nil {
log.Fatalf("Failed to get bucket: %v", err)
}
// When you use UploadFile to perform resumable upload, the number of parts cannot exceed 10000.
// Specify the size of each part based on the size of the object that you want to upload. The size of each part ranges from 100 KB to 5 GB. Default value: 100 KB (100 x 1024).
// Use oss.Routines to set the number of parts that can be uploaded in parallel to 3.
// Specify the full path of the object. Do not include the bucket name in the full path. Example: exampledir/exampleobject.txt.
// Specify the full path of the local file. Example: D:\\localpath\\examplefile.txt. By default, if you do not specify the path of the local file, the file is uploaded from the path of the project to which the sample program belongs.
err = bucket.UploadFile("exampledir/exampleobject.txt", "D:\\localpath\\examplefile.txt", 100*1024, oss.Routines(3), oss.Checkpoint(true, ""))
if err != nil {
log.Fatalf("Failed to upload file: %v", err)
}
log.Println("File uploaded successfully.")
}
SSS
İlgili kaynaklar
Tam kalan yüklemeyi sürdürme örnek koduna GitHub üzerinden erişebilirsiniz.
Kalan yüklemeyi sürdürme yöntemi için API referansı: UploadFile.