Menggunakan AWS S3 dalam Go: Panduan Lengkap

王林
Lepaskan: 2023-06-17 08:21:59
asal
2133 orang telah melayarinya

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.

  1. Pasang AWS SDK for 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
Salin selepas log masuk

Perintah ini akan memuat turun kebergantungan yang diperlukan daripada GitHub dan menyimpannya dalam projek anda.

  1. Konfigurasikan AWS SDK

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
Salin selepas log masuk

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.

  1. Operasi Asas

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)
Salin selepas log masuk

(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)
}
Salin selepas log masuk

(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)
}
Salin selepas log masuk

( 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)
}
Salin selepas log masuk

(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)
}
Salin selepas log masuk
  1. Kesimpulan

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!