通过S3使用Minio
通过S3使用Minio
Minio是一种开源的对象存储系统,提供了简单易用的存储解决方案。由于minio使用了S3兼容的API, 所以可以直接通过aws s3的sdk进行接入。
以下, 是基于golang的代码示例, 只在于初始化aws配置时的参数略有区分, 其他操作和功能暂未发现差异, 此处不再单独列举。
// gen aws config for minio
func (m *Minio) config() *aws.Config {
conf := &aws.Config{
Credentials: credentials.NewStaticCredentials(m.Credentials.AccessKeyId, m.Credentials.AccessKeySecret, ""),
Region: aws.String(m.Region),
S3ForcePathStyle: aws.Bool(true),
Endpoint: aws.String(m.Endpoint),
}
if m.Debug {
conf.LogLevel = aws.LogLevel(aws.LogDebugWithHTTPBody)
}
return conf
}
注意以上代码, 和对接s3官方的区别在于:
- 将minio的api地址, 设置为aws中的
Endpoint
。 -
S3ForcePathStyle
需要设置为true
. 因为s3官方访问资源时, 会将region
作为子域名部分, 通过设置此项参数, 可以按照设定的Endpoint
来访问资源。 - 关于arn, 可以直接使用
arn:aws:s3:::{bucket}/*
, 例如arn:aws:s3:::cs-dev/*
在minio中创建用户
登录到minio管理后台后, 我们先创建一个存储桶
- 菜单栏 Administrator > Buckets, 右侧"Create Bucket"按钮.
创建一个存储桶对应的策略配置
-
菜单栏 Administrator > Polices, 右侧"Create Policy"按钮.
-
键入策略名称, 复制以下策略配置,保存
{ "Version": "2012-10-17", "Statement": [ { "Sid": "sts-cs-dev", "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::cs-dev/*" ] } ] }
创建一个sts用户, 此用户将是我们在程序中使用的主账户
- 菜单栏 Administrator > Identify > Users, 右侧"Create User"按钮.
- 键入用户名称和密码, 选择刚才创建的策略配置,保存
在开发中, 使用刚才创建的用户名称作为AccessKeyId
, 用户密码作为AccessKeySecret
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧