Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden von AWS S3 in Go: Eine vollständige Anleitung

Verwenden von AWS S3 in Go: Eine vollständige Anleitung

王林
王林Original
2023-06-17 08:21:592092Durchsuche

Mit der Entwicklung der Cloud-Computing-Technologie haben viele Unternehmen in den letzten Jahren begonnen, auf Cloud-Speicherdienste zurückzugreifen, um ihre eigenen Daten zu speichern und zu verwalten. Unter ihnen ist AWS S3 (Amazon Web Services Simple Storage Service) eine beliebte Wahl. Als einer der Kerndienste von AWS bietet S3 hochverfügbare, leistungsstarke, skalierbare und sichere Speicherdienste. In diesem Artikel werden wir uns eingehend mit der Verwendung von AWS S3 in Go befassen.

  1. Installieren Sie AWS SDK for Go

Bevor Sie AWS S3 verwenden, müssen Sie AWS SDK for Go in Ihrem Projekt installieren. Es kann mit den folgenden Befehlen installiert werden:

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

Diese Befehle laden die erforderlichen Abhängigkeiten von GitHub herunter und speichern sie in Ihrem Projekt.

  1. AWS SDK konfigurieren

Bevor Sie AWS S3 verwenden, müssen Sie AWS SDK-Anmeldeinformationen für den Zugriff auf S3 konfigurieren. Sie können in der AWS-Konsole einen IAM-Benutzer erstellen und dafür Sicherheitsanmeldeinformationen (Zugriffsschlüssel und geheimer Zugriffsschlüssel) generieren. Laden Sie diese Anmeldeinformationen dann auf Ihren Computer hoch (normalerweise in einer ~/.aws/credentials-Datei).

[default]
aws_access_key_id = Access_Key
aws_secret_access_key = Secret_Access_Key

Beachten Sie, dass Sie diese Anmeldeinformationen aus Sicherheitsgründen in Ihren Umgebungsvariablen speichern oder diese Anmeldeinformationen auf andere Weise verwalten können, um zu verhindern, dass sie preisgegeben werden.

  1. Grundlegende Vorgänge

Da wir nun die Konfiguration von AWS SDK und AWS S3 abgeschlossen haben, beginnen wir mit der Durchführung einiger grundlegender Vorgänge.

(1) S3-Instanz erstellen:

sess, err := session.NewSession(&aws.Config{
    Region: aws.String(region)},
)
s3Svc := s3.New(sess)

(2) S3-Bucket auflisten:

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) Neuen Bucket erstellen:

_, err := s3Svc.CreateBucket(&s3.CreateBucketInput{
    Bucket: aws.String(bucketName),
})
if err != nil {
    log.Fatalf("failed to create bucket %s, %v", bucketName, err)
}

(4) Datei hochladen:

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) Datei herunterladen:

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)
}
  1. Fazit

In diesem Artikel haben wir gesehen, wie man AWS S3 in der Go-Sprache verwendet. Unabhängig davon, ob Sie Daten in einer AWS-Cloud-Umgebung speichern oder den S3-Dienst in Ihrer Anwendung verwenden, ist es hilfreich zu wissen, wie Sie eine Verbindung zu S3 herstellen und grundlegende Vorgänge ausführen. Durch die Nutzung der Funktionen des AWS SDK for Go können Sie S3 problemlos als Backend-Speicher für Ihre Go-Anwendungen verwenden. Jetzt können Sie mit diesem leistungsstarken Speicherdienst erweiterte Vorgänge erkunden und Ihre Daten verwalten!

Das obige ist der detaillierte Inhalt vonVerwenden von AWS S3 in Go: Eine vollständige Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn