Go での AWS S3 の使用: 完全ガイド

王林
リリース: 2023-06-17 08:21:59
オリジナル
2133 人が閲覧しました

近年、クラウド コンピューティング テクノロジーの発展に伴い、多くの企業が自社のデータを保存および管理するためにクラウド ストレージ サービスに注目し始めています。その中でも、AWS S3 (Amazon Web Services Simple Storage Service) が人気です。 AWS の中核サービスの 1 つとして、S3 は高可用性、高性能、スケーラブルで安全なストレージ サービスを提供します。この記事では、Go で AWS S3 を使用する方法について詳しく説明します。

  1. AWS SDK for Go のインストール

AWS S3 の使用を開始する前に、プロジェクトに AWS SDK for Go をインストールする必要があります。次のコマンドを使用してインストールできます。

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
ログイン後にコピー

これらのコマンドは、必要な依存関係を GitHub からダウンロードし、プロジェクトに保存します。

  1. AWS SDK の設定

AWS S3 を使用する前に、S3 にアクセスするための AWS SDK 認証情報を設定する必要があります。 AWS コンソールで IAM ユーザーを作成し、そのユーザーのセキュリティ認証情報 (アクセス キーとシークレット アクセス キー) を生成できます。次に、これらの認証情報をコンピューターにアップロードします (通常は ~/.aws/credentials ファイル内)。

[default]
aws_access_key_id = Access_Key
aws_secret_access_key = Secret_Access_Key
ログイン後にコピー

セキュリティ上の理由から、これらの認証情報を環境変数に保存するか、他の手段を使用してこれらの認証情報を管理して漏洩を防ぐことができることに注意してください。

  1. 基本操作

AWS SDK と AWS S3 の設定が完了したので、いくつかの基本操作の実行を開始しましょう。

(1) S3 インスタンスの作成:

sess, err := session.NewSession(&aws.Config{
    Region: aws.String(region)},
)
s3Svc := s3.New(sess)
ログイン後にコピー

(2) S3 バケットの一覧表示:

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) 新しいバケットの作成:

_, err := s3Svc.CreateBucket(&s3.CreateBucketInput{
    Bucket: aws.String(bucketName),
})
if err != nil {
    log.Fatalf("failed to create bucket %s, %v", bucketName, err)
}
ログイン後にコピー

( 4) ファイルのアップロード:

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) ファイルのダウンロード:

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. 結論

この記事では、Go の使い方を学習しました。言語 AWS S3 を使用します。データを AWS クラウド環境に保存する場合でも、アプリケーションで S3 サービスを使用する場合でも、S3 に接続して基本的な操作を実行する方法を知っておくと役立ちます。 AWS SDK for Go の機能を使用すると、S3 を Go アプリケーションのバックエンドストレージとして簡単に使用できます。この強力なストレージ サービスを使用して、より高度な操作とデータの管理を開始できるようになりました。

以上がGo での AWS S3 の使用: 完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!