Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:Rename a file (Go SDK V1)

Son Güncelleme:Oct 01, 2026

OSS, nesnelerin doğrudan yeniden adlandırılmasını desteklemez. Bir nesneyi yeniden adlandırmak için kopyala ve sil işlemini uygulayın: İstediğiniz ada sahip yeni bir nesne oluşturmak için CopyObject yöntemini çağırın, ardından kaynak nesneyi kaldırmak için DeleteObject yöntemini çağırın.

Notlar

  • Bu konuda Çin (Hangzhou) bölgesinin genel uç noktası kullanılmıştır. OSS ile aynı bölgedeki diğer Alibaba Cloud hizmetlerinden OSS'e erişmek için 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 bilgilerini yapılandırma 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österir. Özel alan adı 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).

Örnek kod

Aşağıdaki kod, examplebucket paketindeki srcobject.txt nesnesinin destobject.txt olarak nasıl yeniden adlandırılacağını gösterir.

package main

import (
	"fmt"
	"log"

	"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 a bucket in 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 a bucket in 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.
	bucketName := "examplebucket"
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Failed to get bucket '%s': %v", bucketName, err)
	}

	// The full path of the source object. The full path cannot contain the bucket name.
	srcObject := "srcobject.txt"
	// The full path of the destination object. The full path cannot contain the bucket name.
	destObject := "destobject.txt"

	// Copy srcobject.txt to destobject.txt in the same bucket.
	_, err = bucket.CopyObject(srcObject, destObject)
	if err != nil {
		log.Fatalf("Failed to copy object '%s' to '%s': %v", srcObject, destObject, err)
	}

	// Delete srcobject.txt.
	err = bucket.DeleteObject(srcObject)
	if err != nil {
		log.Fatalf("Failed to delete source object '%s': %v", srcObject, err)
	}

	fmt.Printf("%s has been renamed to %s\n", srcObject, destObject)
}

İlgili Konular

Bir nesneyi yeniden adlandırmak için kullanılan API işlemleri hakkında daha fazla bilgi için bkz. CopyObject ve DeleteObject.