Mevcut eklenebilir nesnelere içerik eklemek için AppendObject işlemini çağırabilirsiniz.
Notlar
Bu konuda Çin (Hangzhou) bölgesinin genel uç noktası kullanılmaktadır. OSS ile aynı bölgedeki diğer Alibaba Cloud hizmetlerinden OSS'e erişmek istiyorsanız dahili bir 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ınmaktadı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 konuda, bir OSS uç noktası kullanılarak bir OSSClient örneğinin nasıl oluşturulacağı gösterilmektedir. Özel etki alanı kullanma veya Security Token Service (STS) kimlik bilgileriyle kimlik doğrulama gibi alternatif yapılandırmalar için bkz. İstemci yapılandırma (Go SDK V1).
İçerik eklemek istediğiniz nesne mevcut değilse AppendObject işlemi eklenebilir bir nesne oluşturur.
-
İçerik eklemek istediğiniz nesne mevcutsa:
Nesne eklenebilir bir nesneyse ve ekleme işleminin başlayacağı belirtilen konum geçerli nesne boyutuna eşitse veriler nesnenin sonuna eklenir.
Nesne eklenebilir bir nesneyse ve ekleme işleminin başlayacağı belirtilen konum geçerli nesne boyutuna eşit değilse PositionNotEqualToLength hatası döndürülür.
Nesne eklenebilir bir nesne değilse ObjectNotAppendable hatası döndürülür.
İzinler
Varsayılan olarak bir Alibaba Cloud hesabı tam izinlere sahiptir. Bir Alibaba Cloud hesabı altındaki RAM kullanıcıları veya RAM rolleri varsayılan olarak herhangi bir izne sahip değildir. Alibaba Cloud hesabı veya hesap yöneticisi, işlem izinlerini RAM ilkeleri veya Paket İlkesi aracılığıyla vermelidir.
|
API |
Eylem |
Açıklama |
|
AppendObject |
|
Bu işlemi, mevcut bir nesneye ekleyerek bir nesne yüklemek için çağırabilirsiniz. |
|
|
Mevcut bir nesneye ekleyerek nesne yüklerken x-oss-tagging aracılığıyla nesne etiketleri belirtirseniz bu izin gerekir. |
Örnek kod
Aşağıdaki kod, ekleme yöntemiyle yüklemenin nasıl yapılacağını göstermektedir:
package main
import (
"log"
"strings"
"time"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// Obtain access credentials from environment variables. Before you run this sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are set.
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
log.Fatalf("Failed to create credentials provider: %v", err)
}
// Create an OSSClient instance.
// Set yourEndpoint to the Endpoint of the bucket. For example, for the China (Hangzhou) region, set the Endpoint to https://oss-cn-hangzhou.aliyuncs.com. For other regions, use the actual Endpoint.
// Set yourRegion to the region where the bucket is located. For example, for the China (Hangzhou) region, set the region to cn-hangzhou. For other regions, use the actual region.
clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
clientOptions = append(clientOptions, oss.Region("yourRegion"))
// Set 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 bucket name, for example, examplebucket.
bucketName := "examplebucket" // Replace with the actual bucket name.
bucket, err := client.Bucket(bucketName)
if err != nil {
log.Fatalf("Failed to get bucket: %v", err)
}
// Specify the full path of the object. Do not include the bucket name. For example, appendobject.txt.
objectName := "appendobject.txt"
var nextPos int64 = 0
// Specify the expiration time.
expires := time.Date(2025, time.December, 10, 23, 0, 0, 0, time.UTC)
options := []oss.Option{
oss.Expires(expires),
}
// The position for the first append upload is 0. The return value is the position for the next append upload.
appendValue1 := "YourObjectAppendValue1"
nextPos, err = bucket.AppendObject(objectName, strings.NewReader(appendValue1), nextPos, options...)
if err != nil {
log.Fatalf("Failed to append first value: %v", err)
}
// Perform the second append upload.
appendValue2 := "YourObjectAppendValue2"
nextPos, err = bucket.AppendObject(objectName, strings.NewReader(appendValue2), nextPos)
if err != nil {
log.Fatalf("Failed to append second value: %v", err)
}
log.Println("Append uploads completed successfully.")
}
SSS
İlgili belgeler
Ekleme yöntemiyle yükleme için eksiksiz örnek kodu görmek üzere GitHub örneğine bakın.
AppendObject API işlemi hakkında daha fazla bilgi için bkz. AppendObject.