Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:Server-side encryption (OSS SDK for Go 1.0)

Son Güncelleme:Oct 01, 2026

Object Storage Service (OSS), yüklenen verileri sunucu üzerinde şifreleyebilir. Bu işleme sunucu tarafı şifreleme denir. OSS'e veri yüklediğinizde hizmet bu verileri şifreler ve şifrelenmiş veriyi kalıcı olarak depolar. OSS'ten veri indirdiğinizde ise verilerin şifresini çözer ve çözülmüş veriyi döndürür. Ayrıca, yanıt başlığına verinin sunucuda şifrelendiğini belirten bir bilgi eklenir.

Notlar

  • Sunucu tarafı şifrelemeyi yapılandırmadan önce bu özelliğe aşina olduğunuzdan emin olun. Daha fazla bilgi için bkz. Sunucu tarafı şifreleme.

  • Bu konuda China (Hangzhou) bölgesinin genel uç noktası kullanılmıştır. OSS ile aynı bölgede bulunan diğer Alibaba Cloud hizmetlerinden OSS'e erişmek isterseniz dahili uç noktayı 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ğinin nasıl oluşturulacağını göstermektedir. Ö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).

  • Bir paket için sunucu tarafı şifrelemeyi yapılandırmak üzere oss:PutBucketEncryption iznine sahip olmanız gerekir. Bir paketin sunucu tarafı şifreleme yapılandırmalarını sorgulamak için oss:GetBucketEncryption iznine, şifreleme yapılandırmalarını silmek için ise oss:DeleteBucketEncryption iznine ihtiyacınız vardır. Daha fazla bilgi için bkz. Özel ilke atama.

Örnek Kod

Örnek Kod

Bir paket için sunucu tarafı şifrelemeyi yapılandırma

Aşağıdaki örnek kod, bir paket için varsayılan şifreleme yönteminin nasıl yapılandırılacağını gösterir. Yöntem yapılandırıldıktan sonra şifreleme yöntemi belirtilmeden pakete yüklenen tüm nesneler varsayılan şifreleme yöntemi kullanılarak şifrelenir.

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("Error creating 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 the bucket is located in the China (Hangzhou) region, set the region to cn-hangzhou. Specify the actual region.
	clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
	clientOptions = append(clientOptions, oss.Region("yourRegion"))
	// Specify the version of the signature algorithm.
	clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
	client, err := oss.New("yourEndpoint", "", "", clientOptions...)
	if err != nil {
		log.Fatalf("Error creating OSS client: %v", err)
	}

	// Initialize an encryption rule. In this example, the AES-256 encryption algorithm is used. 
	config := oss.ServerEncryptionRule{
		SSEDefault: oss.SSEDefaultRule{
			SSEAlgorithm: "AES256",
		},
	}

	// Configures encryption rules for the OSS bucket.
	err = client.SetBucketEncryption("yourBucketName", config)
	if err != nil {
		log.Fatalf("Error setting bucket encryption: %v", err)
	}

	log.Println("Bucket encryption set successfully")
}

Bir paketin sunucu tarafı şifreleme yapılandırmalarını sorgulama

Aşağıdaki örnek kod, bir paketin sunucu tarafı şifreleme yapılandırmalarının nasıl sorgulanacağını gösterir:

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("Error creating 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 the bucket is located in the China (Hangzhou) region, set the region to cn-hangzhou. Specify the actual region.
	clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
	clientOptions = append(clientOptions, oss.Region("yourRegion"))
	// Specify the version of the signature algorithm.
	clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
	client, err := oss.New("yourEndpoint", "", "", clientOptions...)
	if err != nil {
		log.Fatalf("Error creating OSS client: %v", err)
	}

	// Obtain the encryption rule configured for the bucket.
	ret, err := client.GetBucketEncryption("yourBucketName")
	if err != nil {
		log.Fatalf("Error getting bucket encryption: %v", err)
	}

	// Display the encryption rule. 
	log.Printf("Encrypt rule: %s", ret.SSEDefault.SSEAlgorithm)
}

Bir paketin sunucu tarafı şifreleme yapılandırmalarını silme

Aşağıdaki örnek kod, bir paketin sunucu tarafı şifreleme yapılandırmalarının nasıl silineceğini gösterir:

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("Error creating 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 the bucket is located in the China (Hangzhou) region, set the region to cn-hangzhou. Specify the actual region.
	clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
	clientOptions = append(clientOptions, oss.Region("yourRegion"))
	// Specify the version of the signature algorithm.
	clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
	client, err := oss.New("yourEndpoint", "", "", clientOptions...)
	if err != nil {
		log.Fatalf("Error creating OSS client: %v", err)
	}

	// Delete the encryption rule configured for the bucket. 
	err = client.DeleteBucketEncryption("yourBucketName")
	if err != nil {
		log.Fatalf("Error deleting bucket encryption: %v", err)
	}

	log.Println("Bucket encryption deleted successfully")
}

İlgili Konular

  • Sunucu tarafı şifreleme uygulamak için kullanılan eksiksiz örnek kodu görüntülemek için GitHub adresini ziyaret edin.

  • Sunucu tarafı şifrelemeyi yapılandırmak için çağırabileceğiniz API işlemi hakkında daha fazla bilgi için bkz. SetBucketEncryption.

  • Sunucu tarafı şifreleme yapılandırmalarını sorgulamak için çağırabileceğiniz API işlemi hakkında daha fazla bilgi için bkz. GetBucketEncryption.

  • Sunucu tarafı şifreleme yapılandırmalarını silmek için çağırabileceğiniz API işlemi hakkında daha fazla bilgi için bkz. DeleteBucketEncryption.