- MinIO Quickstart Guide
- MinIO Docker 快速入门
- Minio纠删码快速入门
- 分布式MinIO快速入门
- 使用MinIO分解的HDP Spark和Hive
- 使用TLS安全的访问Minio服务
- MinIO存储桶通知指南
- MinIO Server config.json (v18) 指南
- MinIO多租户(Multi-tenant)部署指南
- MinIO Azure 网关
- MinIO GCS 网关
- MinIO NAS网关
- MinIO S3网关
- MinIO HDFS网关
- 磁盘缓存快速入门
- 如何使用Prometheus监控MinIO服务器
- Federation 快速入门指南
- KMS指南
- 选择API快速入门指南
- 压缩指南
- MinIO多用户快速入门指南
- MinIO STS快速入门指南
- MinIO部署快速入门
- 使用Docker Swarm部署MinIO
- 使用Kubernetes部署MinIO
- 使用Docker Compose部署MinIO
- MinIO客户端快速入门指南
- MinIO Client完全指南
- MinIO管理员完整指南
- 适用于Amazon S3兼容云存储的Minio JavaScript Library
- JavaScript Client API参考文档
- 适用于与Amazon S3兼容的云存储的MinIO Java SDK
- Java Client API参考文档
- 适用于与Amazon S3兼容的云存储的MinIO Python Library
- Python Client API文档
- 适用于与Amazon S3兼容云存储的MinIO Go SDK
- MinIO Go Client API文档
- 适用于与Amazon S3兼容的云存储的MinIO .NET SDK
- .NET Client API参考文档
- 用于Haskell的MinIO Client SDK
- MinIO Haskell SDK API参考
- 使用S3cmd操作MinIO Server
- 使用AWS CLI结合MinIO Server
- restic结合MinIO Server
- 将MySQL备份存储到MinIO Server
- 将MongoDB备份存储到MinIO Server
- 将PostgreSQL备份存储到MinIO Server
- 为MinIO Server设置Caddy proxy
- 为MinIO Server设置Nginx代理
- 使用fluentd插件聚合Apache日志
- Rclone结合MinIO Server
- 结合MinIO运行Deis Workflow
- 为MinIO Server设置Apache HTTP proxy
- 使用pre-signed URLs通过浏览器上传
- 如何在FreeNAS中运行MinIO
- 如何使用Cyberduck结合MinIO
- 如何使用AWS SDK for PHP操作MinIO Server
- 如何使用AWS SDK for Ruby操作MinIO Server
- 如何使用AWS SDK for Python操作MinIO Server
- 如何使用Mountain Duck结合MinIO
- 如何使用AWS SDK for Javascript操作MinIO Server
- 如何使用Træfɪk代理多个MinIO服务
- 如何使用AWS SDK for Go操作MinIO Server
- 如何使用AWS SDK for Java操作MinIO Server
- 如何使用Paperclip操作MinIO Server
- 如何使用AWS SDK for .NET操作MinIO Server
- 如何使用aws-cli调用MinIO服务端加密
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
如何使用AWS SDK for Go操作MinIO Server
aws-sdk-go
是GO语言版本的官方AWS SDK。本文将学习如何使用aws-sdk-go
来操作MinIO Server。
1. 前提条件
从这里下载并安装MinIO Server。
2. 安装
从AWS SDK for GO官方文档下载将安装aws-sdk-go
。
3. 示例
替换example.go
文件中的Endpoint
,Credentials
, Bucket
配置成你的本地配置。
下面的示例讲的是如何使用aws-sdk-go从MinIO Server上putObject和getObject。
package main
import (
"fmt"
"os"
"strings"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/service/s3/s3manager"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
)
func main() {
bucket := aws.String("newbucket")
key := aws.String("testobject")
// 配置成使用MinIO Server。
s3Config := &aws.Config{
Credentials: credentials.NewStaticCredentials("YOUR-ACCESSKEYID", "YOUR-SECRETACCESSKEY", ""),
Endpoint: aws.String("http://localhost:9000"),
Region: aws.String("us-east-1"),
DisableSSL: aws.Bool(true),
S3ForcePathStyle: aws.Bool(true),
}
newSession := session.New(s3Config)
s3Client := s3.New(newSession)
cparams := &s3.CreateBucketInput{
Bucket: bucket, // 必须
}
// 调用CreateBucket创建一个新的存储桶。
_, err := s3Client.CreateBucket(cparams)
if err != nil {
// 错误信息
fmt.Println(err.Error())
return
}
// 上传一个新的文件"testobject"到存储桶"newbucket",内容是"Hello World!" 。
_, err = s3Client.PutObject(&s3.PutObjectInput{
Body: strings.NewReader("Hello from MinIO!!"),
Bucket: bucket,
Key: key,
})
if err != nil {
fmt.Printf("Failed to upload data to %s/%s, %s\n", *bucket, *key, err.Error())
return
}
fmt.Printf("Successfully created bucket %s and uploaded data with key %s\n", *bucket, *key)
// 从 "newbucket"里获取文件"testobject",并保存到本地文件"testobject_local"。
file, err := os.Create("testobject_local")
if err != nil {
fmt.Println("Failed to create file", err)
return
}
defer file.Close()
downloader := s3manager.NewDownloader(newSession)
numBytes, err := downloader.Download(file,
&s3.GetObjectInput{
Bucket: bucket,
Key: key,
})
if err != nil {
fmt.Println("Failed to download file", err)
return
}
fmt.Println("Downloaded file", file.Name(), numBytes, "bytes")
}
4. 运行程序
go run example.go
Successfully created bucket newbucket and uploaded data with key testobject
Downloaded file testobject_local 18 bytes
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论