Tous les produits
Search
Centre de documentation

Object Storage Service:Activer le paiement par requérant à l'aide du SDK OSS pour Go 2.0

Dernière mise à jour :Aug 18, 2026

Lorsque l'option de paiement par requérant est activée pour un bucket, le requérant prend en charge les frais de requête et de trafic, tandis que le propriétaire du bucket ne paie que les coûts de stockage. Cette configuration permet de partager des données sans engendrer de frais supplémentaires liés aux requêtes et au trafic.

Remarques sur l'utilisation

  • Le code d'exemple présenté dans cette rubrique utilise l'ID de région cn-hangzhou de la région Chine (Hangzhou) ainsi que le point de terminaison public. Pour accéder à OSS depuis d'autres services Alibaba Cloud situés dans la même région, utilisez le point de terminaison interne. Pour plus d'informations sur les régions et les points de terminaison OSS, consultez la page Régions et points de terminaison.

  • Dans cette rubrique, les identifiants d'accès sont récupérés à partir de variables d'environnement. Pour en savoir plus, reportez-vous à la section Configurer les identifiants d'accès.

  • Pour activer le paiement par requérant, vous devez disposer de l'autorisation oss:PutBucketRequestPayment. Pour interroger les configurations de paiement par requérant, vous devez disposer de l'autorisation oss:GetBucketRequestPayment. Pour plus de détails, consultez la page Exemples courants de politiques RAM.

Méthode

Activer le paiement par requérant pour un bucket

func (c *Client) PutBucketRequestPayment(ctx context.Context, request *PutBucketRequestPaymentRequest, optFns ...func(*Options)) (*PutBucketRequestPaymentResult, error)

Interroger les configurations de paiement par requérant d'un bucket

func (c *Client) GetBucketRequestPayment(ctx context.Context, request *GetBucketRequestPaymentRequest, optFns ...func(*Options)) (*GetBucketRequestPaymentResult, error)

Paramètres de requête

Paramètre

Type

Description

ctx

context.Context

Contexte de la requête, permettant de spécifier la durée totale de celle-ci.

request

*PutBucketRequestPaymentRequest

Paramètres de la requête. Pour plus d'informations, consultez PutBucketRequestPaymentRequest.

*GetBucketRequestPaymentRequest

Paramètres de la requête. Pour plus d'informations, consultez GetBucketRequestPaymentRequest.

optFns

...func(*Options)

Facultatif. Paramètres au niveau de l'opération. Pour plus d'informations, consultez Options.

Paramètres de réponse

Paramètre de réponse

Type

Description

result

*PutBucketRequestPaymentResult

Réponse. Valide lorsque err est nul. Pour plus d'informations, consultez PutBucketRequestPaymentResult.

*GetBucketRequestPaymentResult

Réponse. Valide lorsque err est nul. Pour plus d'informations, consultez GetBucketRequestPaymentResult.

err

error

Message d'erreur. Une valeur non nulle indique un échec de la requête.

Exemples

Activer le paiement par requérant

L'exemple de code suivant montre comment activer le paiement par requérant :

package main

import (
	"context"
	"flag"
	"log"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

// Specify the global variables.
var (
	region     string // The region in which the bucket is located.
	bucketName string // The name of the bucket.
)

// Specify the init function used to initialize command line parameters.
func init() {
	flag.StringVar(&region, "region", "", "The region in which the bucket is located.")
	flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
}

func main() {
	// Parse the command line arguments.
	flag.Parse()

	// Check whether the bucket name is specified.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, bucket name required")
	}

	// Check whether the region is specified.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, region required")
	}

	// Load the default configurations and specify the credential provider and region.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// Create an OSSClient instance.
	client := oss.NewClient(cfg)

	// Create a request to specify the payer of the request.
	putRequest := &oss.PutBucketRequestPaymentRequest{
		Bucket: oss.Ptr(bucketName), // The name of the bucket.
		PaymentConfiguration: &oss.RequestPaymentConfiguration{
			Payer: oss.Requester, // Set the payer of the request to the requester.
		},
	}

	// Send the request to specify the payer of the request.
	putResult, err := client.PutBucketRequestPayment(context.TODO(), putRequest)
	if err != nil {
		log.Fatalf("failed to put bucket request payment %v", err)
	}

	// Display the result.
	log.Printf("put bucket request payment result:%#v\n", putResult)
}

Interroger les configurations de paiement par requérant d'un bucket

L'exemple de code suivant montre comment interroger les configurations de paiement par requérant d'un bucket :

package main

import (
	"context"
	"flag"
	"log"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

// Specify the global variables.
var (
	region     string // The region in which the bucket is located.
	bucketName string // The name of the bucket.
)

// Specify the init function used to initialize command line parameters.
func init() {
	flag.StringVar(&region, "region", "", "The region in which the bucket is located.")
	flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
}

func main() {
	// Parse command line parameters.
	flag.Parse()

	// Check whether the bucket name is empty.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, bucket name required")
	}

	// Check whether the region is empty.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, region required")
	}

	// Load the default configurations and specify the credential provider and region.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// Create an OSS client.
	client := oss.NewClient(cfg)

	// Create a request to query the pay-by-requester configurations of the bucket.
	getRequest := &oss.GetBucketRequestPaymentRequest{
		Bucket: oss.Ptr(bucketName), // The name of the bucket.
	}

	// Execute the request to query the pay-by-requester configurations of the bucket and process the result.
	getResult, err := client.GetBucketRequestPayment(context.TODO(), getRequest)
	if err != nil {
		log.Fatalf("failed to get bucket request payment %v", err)
	}

	// Display the result of the request.
	log.Printf("get bucket request payment result:%#v\n", getResult)
}

Références

  • Pour obtenir l'exemple de code complet relatif à l'activation du paiement par requérant, consultez GitHub.

  • Pour consulter la documentation de référence de l'API concernant l'activation du paiement par requérant, rendez-vous sur PutBucketRequestPayment.

  • Pour obtenir l'exemple de code complet permettant d'interroger les configurations de paiement par requérant d'un bucket, visitez GitHub.

  • Pour consulter la documentation de référence de l'API relative à l'interrogation des configurations de paiement par requérant, accédez à GetBucketRequestPayment.