Heim > Backend-Entwicklung > Golang > So implementieren Sie Cloud-Speicher für Webanwendungen mit Golang

So implementieren Sie Cloud-Speicher für Webanwendungen mit Golang

PHPz
Freigeben: 2023-06-24 11:12:30
Original
952 Leute haben es durchsucht

Cloud-Speicher ist ein integraler Bestandteil moderner Webanwendungen. Es ermöglicht uns das einfache Speichern und Zugreifen auf große Datenmengen, ohne uns Gedanken über Hardwarefehler oder Probleme mit der Speicherkapazität machen zu müssen. In diesem Artikel untersuchen wir, wie man Cloud-Speicher für Webanwendungen mithilfe von Golang implementiert, einschließlich der Verwendung von Amazon S3 und MinIO.

Verwendung von Amazon S3

Amazon S3 ist ein Amazon-Cloud-Dienst, der Objektspeicher unterstützt. Hierbei handelt es sich um ein Speichermuster, bei dem Daten als einzelnes Objekt gespeichert und mit einer eindeutigen Kennung abgerufen werden. Amazon S3 ist skalierbar, zuverlässig und sicher und kann die meisten Speicheranforderungen im Zusammenhang mit Webanwendungen erfüllen.

Schritt 1: AWS SDK for Go installieren

AWS SDK for Go ist eine Go-Sprachschnittstelle für die Arbeit mit Amazon Web Services. Um Amazon S3-Speicher nutzen zu können, müssen Sie das AWS SDK for Go auf Ihrem Computer installieren. Gehen Sie dazu wie folgt vor:

go get -u github.com/aws/aws-sdk-go
Nach dem Login kopieren

Schritt 2: Erstellen Sie einen Amazon S3-Bucket

Bevor Sie Amazon S3-Speicher verwenden können, müssen Sie einen Bucket erstellen. Sie können einen Bucket über die Amazon S3-Konsole, das AWS SDK for Go oder über die AWS Command Line Interface (CLI) erstellen. In diesem Beispiel erstellen wir einen Bucket mit dem AWS SDK for Go:

s3Client := s3.New(session.New(), &aws.Config{
    Region:aws.String(region),
})
s3Client.CreateBucket(&s3.CreateBucketInput{
    Bucket:aws.String(bucketName),
})
Nach dem Login kopieren

Die Variable region speichert die AWS-Region Ihres Buckets und die Variable bucketName gibt dies an Sie möchten den Namen des Buckets erstellen. region存储您的存储桶的AWS区域,变量bucketName表示您要创建的存储桶的名称。

步骤3:上传文件到Amazon S3存储桶

现在我们已经创建了存储桶,可以使用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,
})
Nach dem Login kopieren

在此例中,文件“example.txt”将从本地计算机上传到Amazon S3存储桶。函数PutObject用于将对象上传到存储桶,对应的参数中Bucket指定了要上传到的存储桶的名称,Key是Bucket中保存的对象名称,Body是要上传的文件。

步骤4:从Amazon S3存储桶下载文件

您可以通过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)
Nach dem Login kopieren

在此例中,将文件“example.txt”从存储桶中下载到本地计算机。函数GetObject用于获取存储在Bucket中的对象,对应的参数中Bucket指定了要获取的存储桶的名称,Key是Bucket中保存的对象名称,最终将内容写入到本地文件中。

使用MinIO

MinIO是一个开源对象存储服务,支持Amazon S3 API。它是一个可扩展、高性能和分布式的云存储服务,适用于将大型数据集用于机器学习、分析和备份。

步骤1:安装MinIO SDK for Go

与Amazon S3存储一样,要使用MinIO存储,您需要在计算机上安装MinIO SDK for Go:

go get -u github.com/minio/minio-go/v7
Nach dem Login kopieren

步骤2:连接到MinIO服务器

在使用MinIO之前,您需要连接到MinIO服务器:

minioClient, err := minio.New("play.min.io", "ACCESS_KEY", "SECRET_KEY", true)
if err != nil {
    panic(err)
}
Nach dem Login kopieren

这里的ACCESS_KEYSECRET_KEY

Schritt 3: Dateien in den Amazon S3-Bucket hochladen

Da wir nun den Bucket erstellt haben, können wir mit dem AWS SDK for Go Dateien in den Bucket hochladen:

err = minioClient.MakeBucket(context.Background(), "my-bucket", minio.MakeBucketOptions{})
if err != nil {
    panic(err)
}
Nach dem Login kopieren

In diesem Beispiel wird die Datei „example.txt“ verwendet vom lokalen Computer in den Amazon S3-Bucket hochgeladen werden. Die Funktion PutObject wird zum Hochladen von Objekten in einen Bucket verwendet. Der entsprechende Parameter Bucket gibt den Namen des Buckets an, in den Key hochgeladen werden soll Der Name des im Bucket gespeicherten Objekts, Body ist die hochzuladende Datei.

Schritt 4: Laden Sie die Datei aus dem Amazon S3-Bucket herunter

Sie können die Datei im Bucket über AWS SDK for Go herunterladen:

file, err := os.Open("example.txt")
if err != nil {
    panic(err)
}
defer file.Close()

_, err = minioClient.PutObject(context.Background(), "my-bucket", "example.txt", file, -1, minio.PutObjectOptions{})
if err != nil {
    panic(err)
}
Nach dem Login kopieren

In diesem Beispiel laden Sie die Datei „example.txt“ aus dem Bucket auf Ihr lokales Gerät herunter Computer. Die Funktion GetObject wird verwendet, um das im Bucket gespeicherte Objekt abzurufen. Der entsprechende Parameter Bucket gibt den Namen des abzurufenden Buckets und den Key</ an. code> ist Der Name des im Bucket gespeicherten Objekts und schließlich wird der Inhalt in die lokale Datei geschrieben. <p></p>MinIO verwenden<h3></h3>MinIO ist ein Open-Source-Objektspeicherdienst, der die Amazon S3-API unterstützt. Es handelt sich um einen skalierbaren, leistungsstarken und verteilten Cloud-Speicherdienst, der sich für die Arbeit mit großen Datensätzen für maschinelles Lernen, Analyse und Backup eignet. <p></p>Schritt 1: Installieren Sie das MinIO SDK für Go MinIO, Sie müssen eine Verbindung zum MinIO-Server herstellen: <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:go;toolbar:false;'>object, err := minioClient.GetObject(context.Background(), &quot;my-bucket&quot;, &quot;example.txt&quot;, minio.GetObjectOptions{}) if err != nil { panic(err) } defer object.Close() file, err := os.Create(&quot;example.txt&quot;) if err != nil { panic(err) } defer file.Close() _, err = io.Copy(file, object) if err != nil { panic(err) }</pre><div class="contentsignin">Nach dem Login kopieren</div></div>Der <code>ACCESS_KEY und der SECRET_KEY hier sind die Anmeldeinformationen, die Sie auf dem MinIO-Server festgelegt haben.

Schritt 3: Erstellen Sie einen MinIO-Bucket

Das Erstellen eines MinIO-Buckets ähnelt dem Erstellen eines Amazon S3-Buckets: 🎜rrreee🎜In diesem Beispiel erstellen wir einen Bucket mit dem Namen „my-bucket“. 🎜🎜Schritt 4: Hochladen einer Datei in einen MinIO-Bucket 🎜🎜Das Hochladen einer Datei in einen MinIO-Bucket ähnelt dem Hochladen einer Datei in einen Amazon S3-Bucket: 🎜rrreee🎜In diesem Beispiel laden Sie die Datei „example.txt“ in einen hoch Datei mit dem Namen „my -bucket“ Bucket. 🎜🎜Schritt 5: Laden Sie eine Datei aus einem MinIO-Bucket herunter 🎜🎜Das Herunterladen einer Datei aus einem MinIO-Bucket ähnelt dem Herunterladen einer Datei aus einem Amazon S3-Bucket: 🎜rrreee🎜In diesem Beispiel kopieren Sie die Datei „example.txt“ aus dem Datei mit dem Namen „my-bucket“ auf den lokalen Computer. 🎜🎜Fazit🎜🎜 Die Implementierung von Cloud-Speicher für Webanwendungen mithilfe von Golang ist normalerweise eine relativ einfache Aufgabe. Sowohl AWS SDK for Go als auch MinIO SDK for Go bieten APIs für die Arbeit mit Objektspeicherdiensten, sodass Entwickler Dateien einfach hochladen, herunterladen und darauf zugreifen können. Unabhängig davon, welchen Speicherdienst Sie verwenden, sollten Sie sich mit seiner API vertraut machen und sie in Ihre Anwendung integrieren, um Ihre Daten einfach zu verwalten. 🎜

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Cloud-Speicher für Webanwendungen mit Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage