Go Fiber 한글 공식 문서
  • 🙇‍♀️안녕하세요
  • 🏠Home
    • 👋Welcome
    • 📁API
      • 📦Fiber
      • 🚀App
      • 🧠Ctx
      • 📋Constants
      • 🌎Client
      • 📃Log
      • 🧬Middleware
        • Adaptor
        • BasicAuth
        • Cache
        • Compress
        • CORS
        • CSRF
        • EarlyData
        • Encrypt Cookie
        • EnvVar
        • ETag
        • ExpVar
        • Favicon
        • FileSystem
        • Health Check
        • Helmet
        • Idempotency
        • Keyauth
        • Limiter
        • Logger
        • Monitor
        • Pprof
        • Proxy
        • Recover
        • Redirect
        • RequestID
        • Rewrite
        • Session
        • Skip
        • Timeout
    • 📁Guide
      • 🔌Routing
      • 🎭Grouping
      • 📝Templates
      • 🐛Error Handling
      • 🔎Validation
      • 🎣Hooks
      • ⚡Make Fiber Faster
    • 📁Extra
      • 🤔FAQ
      • 📊Benchmarks
  • 🧩Extra
    • 🧬Contrip
      • 👋Welcome
      • Casbin
      • Fgprof
      • Fiberi18n
      • Fibernewrelic
      • Fibersentry
      • Fiberzap
      • Fiberzerolog
      • JWT
      • LoadShed
      • Opafiber
      • Otelfiber
        • Example
      • Paseto
      • README
      • Swagger
      • Websocket
    • 📦Storage
      • 👋Welcome
      • ArangoDB
      • Azure Blob
      • Badger
      • Bbolt
      • Coherence
      • Couchbase
      • DynamoDB
      • Etcd
      • Memcache
      • Memory
      • Minio
      • MongoDB
      • MSSQL
      • MySQL
      • Nats
      • Pebble
      • Postgres
      • Redis
      • Ristretto
      • Rueidis
      • S3
      • ScyllaDb
      • SQLite3
    • 📃Template
      • 👋Welcome
      • Ace
      • Amber
      • Django
      • Handlebars
      • HTML
        • Golang Templates Cheatsheet
      • Jet
      • Mustache
      • Pug
      • Slim
Powered by GitBook
On this page
  • Table of Contents
  • Signatures
  • Installation
  • Examples
  • Config
  • Default Config
  1. Extra
  2. Storage

S3

PreviousRueidisNextScyllaDb

Last updated 1 year ago


를 사용하는 S3 스토리지 드라이버입니다.

참고: 자격 증명의 config 필드가 제공되지 않으면 환경 변수, ~/.aws/credentials 또는 EC2 인스턴스 역할에서 자격 증명을 사용합니다. 자격 증명의 config 필드가 제공되면 config에서 자격 증명을 사용합니다. 자세한 내용은 을 참조하세요.

참고: Go 1.19 이상이 필요합니다.

Table of Contents

  • Signatures

  • Installation

  • Examples

  • Config

  • Default Config

Signatures

func New(config ...Config) Storage
func (s *Storage) Get(key string) ([]byte, error)  
func (s *Storage) Set(key string, val []byte, exp time.Duration) error
func (s *Storage) Delete(key string) error
func (s *Storage) Reset() error
func (s *Storage) Close() error
func (s *Storage) Conn() *s3.Client

// 유용한 추가 메서드
func (s *Storage) CreateBucket(bucket string) error
func (s *Storage) DeleteBucket(bucket string) error  
func (s *Storage) SetWithChecksum(key string, val []byte, checksum map[types.ChecksumAlgorithm][]byte) error

Installation

go mod init github.com/<user>/<repo>

그런 다음 s3 구현을 설치합니다:

go get github.com/gofiber/storage/s3/v2

Examples

스토리지 패키지를 가져옵니다.

import "github.com/gofiber/storage/s3/v2"

다음과 같은 방법으로 스토리지를 생성할 수 있습니다:

// 기본 config 초기화
store := s3.New()

// 사용자 정의 config 초기화
store := s3.New(s3.Config{
	Bucket:   "my-bucket-url",
	Endpoint: "my-endpoint", 
	Region:   "my-region",
	Reset:    false,
})

Set()을 사용하여 객체를 생성합니다:

err := store.Set("my-key", []byte("my-value"))

또는 SetWithChecksum()을 호출하여 서버 측에서 데이터 무결성을 확인하도록 S3 서버에 요청하는 체크섬과 함께 객체를 생성할 수 있습니다:

현재 4개의 알고리즘이 지원됩니다:

  • types.ChecksumAlgorithmCrc32 (CRC32)

  • types.ChecksumAlgorithmCrc32c (CRC32C)

  • types.ChecksumAlgorithmSha1 (SHA1)

  • types.ChecksumAlgorithmSha256 (SHA256)

key := "my-key"
val := []byte("my-value")

hash := sha256.New()
hash.Write(val)
sha256sum := hash.Sum(nil)

// import "github.com/aws/aws-sdk-go-v2/service/s3/types"  
checksum  = map[types.ChecksumAlgorithm][]byte{
    types.ChecksumAlgorithmSha256: sha256sum,
}

err := store.SetWithChecksum(key, val, checksum)

Config

// Config는 스토리지에 대한 config를 정의합니다.
type Config struct {
	// S3 버킷 이름 
	Bucket string

	// AWS 엔드포인트
	Endpoint string

	// AWS 리전
	Region string

	// 요청 시간 초과
	//  
	// 선택 사항. 기본값은 0(시간 초과 없음)
	RequestTimeout time.Duration

	// Reset은 기존 Bucket에 있는 기존 키를 모두 지웁니다.
	// 
	// 선택 사항. 기본값은 false
	Reset bool

    // Credentials는 AWS 액세스 키와 AWS 비밀 액세스 키를 재정의합니다. 권장하지 않습니다.  
	//
	// 선택 사항. 기본값은 Credentials{}
	Credentials Credentials

	// 재시도 가능한 실패가 발생한 요청을 시도해야 하는 최대 횟수.
	//  
	// 선택 사항. 기본값은 3
	MaxAttempts int

}

type Credentials struct {
	AccessKey       string 
	SecretAccessKey string
}

Default Config

기본 구성에는 필수이며 덮어써야 하는 Bucket, Region 및 Endpoint가 없습니다:

// ConfigDefault는 기본 config입니다.
var ConfigDefault = Config{
	Bucket:         "",
	Region:         "",  
	Endpoint:       "",
	Credentials:    Credentials{},
	MaxAttempts:    3,
	RequestTimeout: 0,
	Reset:          false,
}

S3는 모듈을 지원하는 최신 2개에서 테스트되었습니다. 아직 모듈을 초기화하지 않았다면 다음과 같이 먼저 초기화해야 합니다:

자세한 내용은 을 참조하세요.

🧩
📦
Go 버전
PutObjectInput
aws/aws-sdk-go-v2
자격 증명 지정