You can use the following code to enable real-time access to Archive objects for a bucket.
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" // Import the OSS SDK package.
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" // Import the package for processing authentication information.
)
var (
region string // Define a variable to store the region information obtained from the command line.
bucketName string // Define a variable to store the bucket name obtained from the command line.
)
// The init function is executed before the main function to initialize the program.
func init() {
// Set command line parameters to specify the region. This parameter is left empty by default.
flag.StringVar(®ion, "region", "", "The region in which the bucket is located.")
// Set command line parameters to specify the bucket name. This parameter is left empty by default.
flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
}
func main() {
flag.Parse() // Parse command line parameters.
// Check if the bucket name is specified. If not, the program outputs default parameters and terminates.
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, bucket name required") // Log the error message and terminate the program.
}
// Check if the region information is specified. If not, the program outputs default parameters and terminates.
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required") // Log the error message and terminate the program.
}
// Create a configuration object, load the credential provider from environment variables and specify the region.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := oss.NewClient(cfg) // Create a new OSS client using the configurations.
// Create a PutBucketArchiveDirectRead request to enable real-time access for Archive objects in a specific bucket.
request := &oss.PutBucketArchiveDirectReadRequest{
Bucket: oss.Ptr(bucketName), // Specify the name of the bucket.
ArchiveDirectReadConfiguration: &oss.ArchiveDirectReadConfiguration{
Enabled: oss.Ptr(true), // Enable real-time access. If this parameter is set to true, real-time access is enabled. If it is set to false, this feature is disabled.
},
}
result, err := client.PutBucketArchiveDirectRead(context.TODO(), request) // Send the request to configure real-time access.
if err != nil {
log.Fatalf("failed to put bucket archive direct read %v", err) // If an error occurs, record the error message and terminate the program.
}
log.Printf("put bucket archive direct read result:%#v\n", result) // Display the result.
}