Dalam beberapa tahun kebelakangan ini, dengan perkembangan teknologi pengkomputeran awan, banyak syarikat telah mula beralih kepada perkhidmatan storan awan untuk menyimpan dan mengurus data mereka sendiri. Antaranya, AWS S3 (Amazon Web Services Simple Storage Service) ialah pilihan yang popular. Sebagai salah satu perkhidmatan teras AWS, S3 menyediakan perkhidmatan storan yang tersedia tinggi, berprestasi tinggi, berskala dan selamat. Dalam artikel ini, kami akan mendalami cara menggunakan AWS S3 dalam Go.
Sebelum anda mula menggunakan AWS S3, anda perlu memasang AWS SDK for Go dalam projek anda. Ia boleh dipasang dengan menggunakan arahan berikut:
go get -u github.com/aws/aws-sdk-go/aws go get -u github.com/aws/aws-sdk-go/aws/session go get -u github.com/aws/aws-sdk-go/service/s3
Perintah ini akan memuat turun kebergantungan yang diperlukan daripada GitHub dan menyimpannya dalam projek anda.
Sebelum menggunakan AWS S3, anda perlu mengkonfigurasi bukti kelayakan AWS SDK untuk mengakses S3. Anda boleh mencipta pengguna IAM dalam konsol AWS dan menjana bukti kelayakan keselamatan (Kunci Akses dan Kunci Akses Rahsia) untuknya. Kemudian, muat naik bukti kelayakan ini ke komputer anda (biasanya dalam fail ~/.aws/credentials
).
[default] aws_access_key_id = Access_Key aws_secret_access_key = Secret_Access_Key
Perhatikan bahawa untuk tujuan keselamatan anda boleh menyimpan bukti kelayakan ini dalam pembolehubah persekitaran anda atau menggunakan cara lain untuk mengurus bukti kelayakan ini untuk mengelakkannya daripada bocor.
Sekarang kita telah melengkapkan konfigurasi AWS SDK dan AWS S3, marilah kita mula melaksanakan beberapa operasi asas.
(1) Buat contoh S3:
sess, err := session.NewSession(&aws.Config{ Region: aws.String(region)}, ) s3Svc := s3.New(sess)
(2) Senaraikan baldi S3:
result, err := s3Svc.ListBuckets(nil) if err != nil { log.Fatalf("failed to list buckets, %v", err) } for _, bucket := range result.Buckets { fmt.Printf("%s : %s ", aws.StringValue(bucket.Name), bucket.CreationDate) }
(3) Buat baldi baharu:
_, err := s3Svc.CreateBucket(&s3.CreateBucketInput{ Bucket: aws.String(bucketName), }) if err != nil { log.Fatalf("failed to create bucket %s, %v", bucketName, err) }
( 4) Muat naik fail:
file, err := os.Open(filename) if err != nil { log.Fatalf("failed to open file %q, %v", filename, err) } defer func() { if err = file.Close(); err != nil { log.Fatalf("failed to close file %q, %v", filename, err) } }() _, err = s3Svc.PutObject(&s3.PutObjectInput{ Body: file, Bucket: aws.String(bucketName), Key: aws.String(filepath.Base(filename)), }) if err != nil { log.Fatalf("failed to upload file %q to bucket %q, %v", filename, bucketName, err) }
(5) Muat turun fail:
file, err := os.Create(filename) if err != nil { log.Fatalf("failed to create file %q, %v", filename, err) } defer func() { if err = file.Close(); err != nil { log.Fatalf("failed to close file %q, %v", filename, err) } }() result, err := s3Svc.GetObject(&s3.GetObjectInput{ Bucket: aws.String(bucketName), Key: aws.String(objectName), }) if err != nil { log.Fatalf("failed to download file %q from bucket %q, %v", objectName, bucketName, err) } if _, err = io.Copy(file, result.Body); err != nil { log.Fatalf("failed to download file %q from bucket %q, %v", objectName, bucketName, err) }
Dalam artikel ini, kami telah mempelajari cara menggunakan Go bahasa Menggunakan AWS S3. Sama ada anda menyimpan data dalam persekitaran awan AWS atau menggunakan perkhidmatan S3 dalam aplikasi anda, adalah berguna untuk mengetahui cara menyambung ke S3 dan melaksanakan operasi asas. Dengan menggunakan keupayaan AWS SDK for Go, anda boleh menggunakan S3 dengan mudah sebagai storan bahagian belakang untuk aplikasi Go anda. Kini anda boleh mula meneroka operasi yang lebih maju dan mengurus data anda dengan perkhidmatan storan yang berkuasa ini!
Atas ialah kandungan terperinci Menggunakan AWS S3 dalam Go: Panduan Lengkap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!