Go의 업로드 관리자를 사용하면 메모리와 파일 디스크 공간을 최소화하면서 대용량 파일을 AWS S3에 직접 업로드할 수 있습니다. 방법은 다음과 같습니다.
필요한 라이브러리 가져오기:
import ( "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/s3/s3manager" )
AWS 구성 생성:
awsConfig := &aws.Config{ Region: aws.String("us-west-2"), }
선택적으로 자체 액세스 키를 제공할 수 있으며 필요한 경우 구성에 비밀 키를 입력하세요.
새 세션 및 업로더 초기화:
sess := session.Must(session.NewSession(awsConfig)) uploader := s3manager.NewUploader(sess)
업로더 매개변수 맞춤설정(선택 사항) :
// Set the part size, concurrency, and max upload parts uploader := s3manager.NewUploader(sess, func(u *s3manager.Uploader) { u.PartSize = 5 * 1024 * 1024 // 5MB is the minimum allowed part size u.Concurrency = 2 // Default is 5 })
열기 업로드할 파일:
f, err := os.Open(filename) if err != nil { fmt.Printf("failed to open file %q, %v\n", filename, err) return }
업로더를 사용하여 파일 업로드:
result, err := uploader.Upload(&s3manager.UploadInput{ Bucket: aws.String(myBucket), Key: aws.String(myKey), Body: f, })
잠재적인 오류 처리:
if err != nil { fmt.Printf("failed to upload file, %v\n", err) return }
업로드한 내용 인쇄 위치:
fmt.Printf("file uploaded to, %s\n", result.Location)
이러한 방식으로 업로드 관리자를 활용하면 최소한의 리소스 소비로 대용량 파일을 AWS S3에 직접 스트리밍하고 업로드할 수 있습니다.
위 내용은 Go를 사용하여 AWS S3에 파일 업로드를 스트리밍하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!