Todos los productos
Search
Centro de documentos

Object Storage Service:Crear buckets con OSS SDK para Go 2.0

Última actualización: Sep 03, 2026

Un bucket es un contenedor para almacenar objetos. Este tema describe cómo crear un bucket.

Notas de uso

  • El código de ejemplo de este tema usa el ID de región cn-hangzhou correspondiente a la región China (Hangzhou). De forma predeterminada, se usa el endpoint público para acceder a los recursos de un bucket. Si desea acceder a los recursos del bucket mediante otros servicios de Alibaba Cloud en la misma región donde se encuentra el bucket, use el endpoint interno. Para obtener más información sobre las regiones y endpoints de OSS, consulte Regions and endpoints.

  • En este tema, las credenciales de acceso se obtienen de variables de entorno. Para obtener más información sobre cómo configurar las credenciales de acceso, consulte Configure access credentials.

    A partir de las 10:00:00 (UTC+8) del 13 de octubre de 2025, OSS habilitará gradualmente Block public access de forma predeterminada para los buckets creados mediante llamadas a operaciones de API, OSS SDK u ossutil en todas las regiones. Para conocer la fecha de entrada en vigor de este cambio en cada región, consulte Announcement. Una vez habilitada esta función, no podrá otorgar permisos de acceso público, lo que incluye la ACL de lectura pública o de lectura/escritura pública, ni directivas de bucket que permitan el acceso público. Si su caso de uso requiere acceso público, deshabilite el bloqueo de acceso público después de crear el bucket.

Permisos

De forma predeterminada, una cuenta de Alibaba Cloud tiene permisos completos. Los usuarios de RAM o los roles de RAM bajo una cuenta de Alibaba Cloud no tienen ningún permiso de forma predeterminada. La cuenta de Alibaba Cloud o el administrador de la cuenta deben otorgar los permisos de operación a través de RAM policies o Bucket Policy.

API

Action

Descripción

PutBucket

oss:PutBucket

Crea un bucket.

oss:PutBucketAcl

Después de crear un bucket, este permiso es necesario para modificar la ACL del bucket.

Método

func (c *Client) PutBucket(ctx context.Context, request *PutBucketRequest, optFns ...func(*Options)) (*PutBucketResult, error)

Parámetros de solicitud

Parámetro

Tipo

Descripción

ctx

context.Context

El contexto de la solicitud, que se puede usar para especificar la duración total de la solicitud.

request

*PutBucketRequest

Especifica los parámetros de una operación concreta.

Para obtener más información, consulte PutBucketRequest.

optFns

...func(*Options)

Opcional. El parámetro de nivel de operación.

Para obtener más información, consulte Options.

Parámetros de respuesta

Parámetro de respuesta

Tipo

Descripción

result

*PutBucketResult

La respuesta a la operación. Este parámetro es válido cuando el valor de err es nil. Para obtener más información, consulte PutBucketResult.

err

error

El estado de la solicitud. Si la solicitud falla, el valor de err no puede ser nil.

Ejemplo

A continuación se muestra un código de ejemplo para crear 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.
	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)

	request := &oss.PutBucketRequest{
		Bucket: oss.Ptr(bucketName), // The name of the bucket.
	}

	// Send a request to create a bucket.
	result, err := client.PutBucket(context.TODO(), request)
	if err != nil {
		log.Fatalf("failed to put bucket %v", err)
	}

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

Referencias

  • Para consultar el código de ejemplo completo para crear un bucket, visite GitHub.

  • Para obtener más información sobre la operación de API que puede llamar para crear un bucket, consulte PutBucket.