至v0.74.0起,GoReleaser 支持将存档推送到 Amazon S3 和其他 API 兼容的云存储(例如minio).
现在,实现非常简单,也可能不会涵盖所有用例。如果您需要其中一个用例,请打开问题/请求.
# .goreleaser.yml
s3:
# 你可以有多个s3配置
- # Bucket名称(不带 s3:// 前缀)
# 默认为空。
bucket: my-bucket
# AWS区域使用。
# 默认值为 us-east-1
region: us-east-1
# Bucket内 路径/名称 的模板。
# 默认为`{{ .ProjectName }}/{{ .Tag }}`
folder: 'foo/bar/{{.Version}}'
# 如果你有多个profiles在〜/.aws配置中,
# 设置用于此s3配置的自定义配置文件。这将有助于定义哪个
# s3桶使用哪个配置文件。
# 默认为空。
profile: my-profile
# Endpoint允许您设置自定义端点,这对
# 例如,想要将您的存档推送到minio服务器很有用。
# 默认为AWS S3 URL。
endpoint: 'http://minio.foo.com'
# 使用指定的固定ACL,设置对象的ACL。
# 默认为私有。
acl: public-read
GoReleaser 使用由 aws-cli 定义的相同方法进行身份验证.你可以看看其文档了解更多信息.
目前它支持身份验证:
一个是EnvProvider,它从正在运行的进程的环境变量中检索凭据。环境凭据永不过期.使用的环境变量:
访问密钥ID-Access Key ID: AWS_ACCESS_KEY_ID
或 AWS_ACCESS_KEY
Secret Access Key: AWS_SECRET_ACCESS_KEY
或 AWS_SECRET_KEY
一个是SharedCredentialsProvider,它从当前用户的主目录中检索凭据,并跟踪这些凭据是否已过期.
配置文件 ini 文件示例:$HOME/.aws/credentials
您还可以为每个 S3 配置设置不同的配置文件名称,例如,您可以将其推送到不同帐户中的Bucket.