クラウド ストレージは、最新の Web アプリケーションに不可欠な部分です。これにより、ハードウェアの障害やストレージ容量の問題を心配することなく、大量のデータを簡単に保存してアクセスできるようになります。この記事では、Amazon S3 や MinIO の使用など、Golang を使用して Web アプリケーション用のクラウド ストレージを実装する方法を検討します。
Amazon S3 は、オブジェクト ストレージをサポートする Amazon クラウド サービスです。これは、データが単一のオブジェクトとして保存され、一意の識別子を使用してアクセスされる保存パターンです。 Amazon S3 は拡張性、信頼性、安全性に優れており、Web アプリケーションに関連するほとんどのストレージ ニーズに対応できます。
AWS SDK for Go は、アマゾン ウェブ サービスを操作するための Go 言語インターフェイスです。 Amazon S3 ストレージを使用するには、次のように AWS SDK for Go をコンピュータにインストールする必要があります:
go get -u github.com/aws/aws-sdk-go
Amazon S3 ストレージを使用する前に、Aバケットを作成する必要があります。バケットは、Amazon S3 コンソール、AWS SDK for Go、または AWS コマンドラインインターフェイス (CLI) を通じて作成できます。この例では、AWS SDK for Go を使用してバケットを作成します。
s3Client := s3.New(session.New(), &aws.Config{ Region:aws.String(region), }) s3Client.CreateBucket(&s3.CreateBucketInput{ Bucket:aws.String(bucketName), })
変数 region
はバケットの AWS リージョンを格納し、変数 bucketName
はバケットのリージョンを表します。作成するバケットの名前。
バケットを作成したので、AWS SDK for Go を使用してファイルをバケットにアップロードできます:
file, err := os.Open("example.txt") if err != nil { panic(err) } defer file.Close() s3Client.PutObject(&s3.PutObjectInput{ Bucket:aws.String(bucketName), Key:aws.String("example.txt"), Body:file, })
この例では、ファイル「example.txt」がローカルコンピューターから Amazon S3 バケットにアップロードされます。関数 PutObject
はオブジェクトをバケットにアップロードするために使用されます。対応するパラメーター Bucket
はアップロード先のバケットの名前を指定し、Key
は保存された名前ですオブジェクト名 Body
がアップロードされるファイルです。
AWS SDK for Go を介してバケットからファイルをダウンロードできます:
file, err := os.Create("example.txt") if err != nil { panic(err) } defer file.Close() s3Client.GetObject(&s3.GetObjectInput{ Bucket:aws.String(bucketName), Key:aws.String("example.txt"), }).WriteTo(file)
この例では、次のコードを追加しますファイル「example.txt」がバケットからローカル コンピューターにダウンロードされます。関数 GetObject
は、Bucket に格納されているオブジェクトを取得するために使用されます。対応するパラメーター Bucket
は取得するバケットの名前を指定し、Key
が保存されますオブジェクト名は最終的にローカル ファイルに書き込まれます。
MinIO は、Amazon S3 API をサポートするオープンソースのオブジェクト ストレージ サービスです。これは、機械学習、分析、バックアップのための大規模なデータ セットを扱うのに適した、スケーラブルで高性能な分散型クラウド ストレージ サービスです。
Amazon S3 ストレージと同様に、MinIO ストレージを使用するには、コンピューターに MinIO SDK for Go をインストールする必要があります:
go get -u github.com/minio/minio-go/v7
MinIO を使用する前に、MinIO サーバーに接続する必要があります:
minioClient, err := minio.New("play.min.io", "ACCESS_KEY", "SECRET_KEY", true) if err != nil { panic(err) }
ここで、ACCESS_KEY
と SECRET_KEY
は次のとおりです。 MinIO サーバーに設定された資格情報。
MinIO バケットの作成は、Amazon S3 バケットの作成と似ています:
err = minioClient.MakeBucket(context.Background(), "my-bucket", minio.MakeBucketOptions{}) if err != nil { panic(err) }
この例では、バケットという名前のファイルを作成します。 「マイバケツ」の。
MinIO バケットにファイルをアップロードすることは、Amazon S3 バケットにファイルをアップロードすることと似ています。たとえば、ファイル「example.txt」は「my-bucket」という名前のバケットにアップロードされます。
ステップ 5: MinIO バケットからファイルをダウンロードする
結論
Golang を使用して Web アプリケーションにクラウド ストレージを実装するのは、通常、比較的簡単なタスクです。 AWS SDK for Go と MinIO SDK for Go はどちらも、オブジェクト ストレージ サービスを操作するための API を提供しており、開発者はファイルを簡単にアップロード、ダウンロード、アクセスできます。どのストレージ サービスを使用する場合でも、その API をよく理解し、それをアプリケーションに統合してデータを簡単に管理する必要があります。
以上がGolang を使用して Web アプリケーション用のクラウド ストレージを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。