„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > So laden Sie Dateien auf AWS Ssando Golang hoch

So laden Sie Dateien auf AWS Ssando Golang hoch

Veröffentlicht am 08.11.2024
Durchsuche:681

Como Realizar Upload de Arquivos no AWS Ssando Golang

Das Hochladen von Dateien nach S3 über Golang ist einer der häufigsten Vorgänge, wenn es um die Verwaltung von Dateien auf AWS geht. Mit dieser Funktionalität können Entwickler Dokumente, Bilder, Videos und andere Dateitypen auf sichere und skalierbare Weise in den Cloud-Speicher hochladen. In diesem Artikel erfahren Sie, wie Sie diese Integration mithilfe der Sprache Go und der AWS S3-API durchführen. Als Nächstes werden Sie die wichtigsten Schritte zum Konfigurieren Ihrer Umgebung und zum erfolgreichen Hochladen verstehen.

Vorbereiten der Entwicklungsumgebung

Bevor Sie mit dem Hochladen von Dateien beginnen, müssen Sie Ihre Entwicklungsumgebung konfigurieren. Stellen Sie sicher, dass Sie Folgendes haben:

  1. Ein gültiges AWS-Konto.
  2. Die Zugangsdaten (Zugriffsschlüssel und geheimer Schlüssel) für Ihr AWS-Konto.
  3. Go SDK installiert.
  4. Das offizielle AWS SDK for Go-Paket.

Um das AWS SDK for Go zu installieren, führen Sie einfach den folgenden Befehl aus:

go get -u github.com/aws/aws-sdk-go/aws

Nachdem das SDK installiert ist, können Sie mit dem Schreiben des AWS S3-Integrationscodes beginnen.

Sehen Sie, wie Sie mit Lambdas einen Lebenszyklus von s3 durchführen, um diese Arbeit zu automatisieren: https://devopsmind.com.br/aws-pt-br/automacao-aws-s3-lifecycle-lambda/

Hochladen auf S3

Konfigurieren des AWS S3-Clients

Der erste Schritt zum Hochladen besteht in der Konfiguration des AWS S3-Clients. Mit diesem Client können Sie mit dem AWS-Service interagieren und Ihre Buckets und Objekte verwalten. Der folgende Code zeigt, wie Sie den Client mithilfe Ihrer Anmeldeinformationen konfigurieren:

import (
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/s3"
)

func createS3Client() *s3.S3 {
    sess := session.Must(session.NewSession(&aws.Config{
        Region: aws.String("us-west-2"),
    }))
    return s3.New(sess)
}

In diesem Code erstellen wir eine AWS-Sitzung und konfigurieren den S3-Client. Vergessen Sie nicht, die Region durch den Ort zu ersetzen, an dem Ihr S3-Bucket konfiguriert ist.

Erstellen der Upload-Funktion

Nach der Konfiguration des AWS S3-Clients erstellen wir die Funktion, die für das Hochladen der Dateien verantwortlich ist. Diese Funktion liest die Datei vom lokalen System und sendet sie innerhalb eines bestimmten Buckets an S3:

import (
    "fmt"
    "os"
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/s3"
)

func uploadFileToS3(bucketName, filePath, key string) error {
    file, err := os.Open(filePath)
    if err != nil {
        return err
    }
    defer file.Close()

    sess := session.Must(session.NewSession(&aws.Config{
        Region: aws.String("us-west-2"),
    }))

    uploader := s3.New(sess)
    _, err = uploader.PutObject(&s3.PutObjectInput{
        Bucket: aws.String(bucketName),
        Key:    aws.String(key),
        Body:   file,
    })

    if err != nil {
        return fmt.Errorf("falha no upload para o S3: %v", err)
    }
    fmt.Println("Upload realizado com sucesso!")
    return nil
}

Hier erhält die Funktion uploadFileToS3 drei Parameter: den Bucket-Namen, den lokalen Dateipfad und den Schlüssel (Namen), den die Datei in S3 haben wird. Die Funktion öffnet die Datei und sendet sie mithilfe der AWS S3 SDK for Go PutObject-Funktion an den Bucket.

Umgang mit Berechtigungen

Beim Arbeiten mit Uploads in AWS S3 ist es wichtig sicherzustellen, dass Ihre Berechtigungen richtig konfiguriert sind. AWS verwendet das IAM-Richtliniensystem (Identity and Access Management), um Zugriffsberechtigungen für seine Ressourcen zu verwalten. Stellen Sie sicher, dass der im Code verwendete IAM-Benutzer oder die IAM-Rolle über ausreichende Berechtigungen zum Durchführen von Upload-Vorgängen in S3 verfügt. Weitere Einzelheiten zu IAM-Berechtigungen finden Sie in der offiziellen AWS-Dokumentation.

Praktische Anwendungsbeispiele

Bilder an einen S3-Bucket senden

Angenommen, Sie möchten einen Dienst erstellen, bei dem Benutzer Bilder hochladen und in einem S3-Bucket speichern können. Der Code würde etwa so aussehen:

func main() {
    err := uploadFileToS3("meu-bucket", "caminho/para/imagem.png", "imagem.png")
    if err != nil {
        fmt.Println("Erro ao fazer upload:", err)
        return
    }
    fmt.Println("Upload concluído com sucesso!")
}

In diesem Beispiel wird das Bild imagem.png in den my-bucket-Bucket hochgeladen. Der Pfad zur Datei und ihr Name auf S3 werden durch die Parameter der Funktion uploadFileToS3.

definiert

Abschluss

Das Hochladen von Dateien auf AWS S3 mit Golang ist eine einfache Aufgabe, wenn Sie die richtigen Tools verwenden. Mit dem AWS SDK for Go können Sie Ihre Anwendung problemlos in den S3-Service integrieren und so eine robuste und skalierbare Dateispeicherlösung bereitstellen. Nachdem Sie nun die Grundlagen erlernt haben, können Sie Ihre Implementierung um weitere Funktionen erweitern, z. B. das Herunterladen von Dateien, das Auflisten von Objekten im Bucket und mehr. Entdecken Sie weitere Integrationsmöglichkeiten mit AWS mithilfe von Golang und sehen Sie sich weitere Inhalte zu Golang und AWS S3 an.


Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/fernandomullerjr/como-realizar-upload-de-arquivos-no-aws-s3-usando-golang-1gec?1 Bei Verstößen wenden Sie sich bitte an Study_golang@163 .com, um es zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3