"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > AWS Ssando Golang에 파일을 업로드하는 방법

AWS Ssando Golang에 파일을 업로드하는 방법

2024-11-08에 게시됨
검색:276

Como Realizar Upload de Arquivos no AWS Ssando Golang

Golang을 통해 S3에 파일을 업로드하는 것은 AWS에서 파일을 관리할 때 가장 일반적인 작업 중 하나입니다. 이 기능을 통해 개발자는 문서, 이미지, 비디오 및 기타 유형의 파일을 안전하고 확장 가능한 방식으로 클라우드 스토리지에 업로드할 수 있습니다. 이 기사에서는 Go 언어와 AWS S3 API를 사용하여 이러한 통합을 수행하는 방법을 살펴보겠습니다. 다음으로 환경을 구성하고 성공적으로 업로드하기 위한 주요 단계를 이해하게 됩니다.

개발 환경 준비

파일 업로드를 시작하기 전에 개발 환경을 구성해야 합니다. 다음이 있는지 확인하세요.

  1. 유효한 AWS 계정입니다.
  2. AWS 계정에 대한 액세스 자격 증명(액세스 키 및 비밀 키)입니다.
  3. Go SDK가 설치되었습니다.
  4. 공식 Go용 AWS SDK 패키지.

Go용 AWS SDK를 설치하려면 다음 명령을 실행하면 됩니다.

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

이제 SDK가 설치되었으므로 AWS S3 통합 코드 작성을 시작할 준비가 되었습니다.

이 작업을 자동화하기 위해 Lambda를 사용하여 s3의 수명주기를 확인하는 방법을 알아보세요: https://devopsmind.com.br/aws-pt-br/automacao-aws-s3-lifecycle-lambda/

S3에 업로드 중

AWS S3 클라이언트 구성

업로드의 첫 번째 단계는 AWS S3 클라이언트를 구성하는 것입니다. 이 클라이언트를 사용하면 AWS 서비스와 상호 작용하고 버킷과 객체를 관리할 수 있습니다. 다음 코드는 자격 증명을 사용하여 클라이언트를 구성하는 방법을 보여줍니다.

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)
}

이 코드에서는 AWS 세션을 생성하고 S3 클라이언트를 구성합니다. 지역을 S3 버킷이 구성된 위치로 바꾸는 것을 잊지 마세요.

업로드 기능 생성

AWS S3 클라이언트를 구성한 후 파일 업로드를 담당하는 함수를 생성합니다. 이 함수는 로컬 시스템에서 파일을 읽고 특정 버킷 내에서 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
}

여기서 uploadFileToS3 함수는 버킷 이름, 로컬 파일 경로, 파일이 S3에 갖게 될 키(이름)라는 세 가지 매개변수를 받습니다. 이 함수는 파일을 열고 Go용 AWS S3 SDK PutObject 함수를 사용하여 버킷으로 보냅니다.

권한 처리

AWS S3에 대한 업로드 작업을 수행할 때는 권한이 올바르게 구성되었는지 확인하는 것이 중요합니다. AWS는 IAM(Identity and Access Management) 정책 시스템을 사용하여 리소스에 대한 액세스 권한을 관리합니다. 코드에 사용되는 IAM 사용자 또는 역할에 S3에 업로드 작업을 수행할 수 있는 충분한 권한이 있는지 확인하세요. IAM 권한에 대한 자세한 내용은 공식 AWS 설명서를 참조하세요.

실용적인 사용 예

S3 버킷으로 이미지 전송

사용자가 이미지를 업로드하고 S3 버킷에 저장할 수 있는 서비스를 생성한다고 가정해 보겠습니다. 코드는 다음과 유사합니다.

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!")
}

이 예에서는 imagem.png 이미지가 my-bucket 버킷에 업로드됩니다. S3의 파일 경로와 이름은 uploadFileToS3.

함수의 매개변수로 정의됩니다.

결론

Golang을 사용하여 AWS S3에 파일을 업로드하는 것은 올바른 도구를 사용하면 간단한 작업입니다. Go용 AWS SDK를 사용하면 애플리케이션을 S3 서비스와 쉽게 통합하여 강력하고 확장 가능한 파일 스토리지 솔루션을 제공할 수 있습니다. 이제 기본 사항을 배웠으므로 파일 다운로드, 버킷의 객체 나열 등과 같은 다른 기능을 포함하도록 구현을 확장할 수 있습니다. Golang을 사용하여 AWS와의 더 많은 통합 가능성을 계속 탐색하고 Golang 및 AWS S3에 대한 더 많은 콘텐츠를 확인하세요.


릴리스 선언문 이 기사는 https://dev.to/fernandomullerjr/como-realizar-upload-de-arquivos-no-aws-s3-usando-golang-1gec?1에 복제되어 있습니다. 침해가 있는 경우에는 Study_golang@163으로 문의하시기 바랍니다. .com에서 삭제하세요
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3