帮助管理类似s3的服务中存储的配置文件的实用程序包。
s3conf的Python项目详细描述
#s3conf
[![生成状态](https://travis-ci.org/sbneto/s3conf.svg?branch=master)](https://travis-ci.org/sbneto/s3conf)
帮助管理类似s3的服务中存储的配置文件的实用程序包。
#安装
Linux和Mac有二进制文件:
`bash sudo curl -L"https://github.com/sbneto/s3conf/releases/download/0.10.2/s3conf-$(uname-s)-$(uname-m)"-o /usr/local/bin/s3conf sudo chmod 755 /usr/local/bin/s3conf `
对于Alpine Linux,请使用
`bash sudo curl -L"https://github.com/sbneto/s3conf/releases/download/0.10.2/s3conf-$(uname-s)-$(uname-m)-alpine"-o /usr/local/bin/s3conf sudo chmod 755 /usr/local/bin/s3conf `
如果您的平台无法使用pip,您可以使用pip安装一个或两个附加组件(aws和gcp):
`python pip install s3conf[aws,gcp] `
#用法
##快速入门
###创建环境
在项目根目录下运行此命令:
`bash s3conf init dev s3://my-dev-bucket/dev-env/myfile.env `
这将创建文件
`ini [dev] S3CONF = s3://my-dev-bucket/dev-env/myfile.env `
###S3凭证
如果有aws cli工作,s3conf将使用您的默认凭据。这可以通过以下方法完成:
`bash aws configure `
类似地,s3conf查找默认的gcp凭据。
`bash gcloud auth application-default login `
####手动设置凭据
如果没有配置aws cli,客户端将在 访问远程存储的顺序:
`bash S3CONF_ACCESS_KEY_ID=***access_key***S3CONF_SECRET_ACCESS_KEY=***secret_access_key***S3CONF_S3_ENDPOINT_URL=***endpoint_url*** `
这些变量映射到用于常规BOTO3配置的对应项。 客户机还搜索常规的awscite>变量,但它们的s3conf版本优先。 当使用与s3兼容的非aws blob存储服务时,它们特别有用, 例如数字海洋空间,而不会弄乱你的aws证书。
###编辑您的环境
在项目的任何文件夹中运行此命令:
`bash s3conf env dev -e `
如果是新的bucket/文件,请使用-c标志来创建它:
`bash s3conf env dev -ec `
这将把环境文件从类似s3的存储器下载到一个临时文件中,打开 用于手动编辑的默认文件编辑器(类似于crontab-eworks)并将文件上载回 如果进行了任何编辑,则发送到远程存储服务。
###检索您的环境
在项目的任何文件夹中运行s3conf env dev将读取并输出到stdout内容 当日志发送到stderr时:
`bash $ s3conf env dev info: Loading configs from s3://my-dev-bucket/dev-env/myfile.env ENV_VAR_1=some_data_1 ENV_VAR_2=some_data_2 ENV_VAR_3=some_data_3 `
要将此环境应用于当前shell,可以执行以下操作:
`bash $ export $(s3conf env dev) info: Loading configs from s3://my-dev-bucket/dev-env/myfile.env `
###向环境中添加凭据文件
如果要在环境中保存某些文件或文件夹,可以添加映射:
`bash s3conf add dev ./some-credentials-file-or-folder `
###将凭据文件推送到远程存储中
`bash s3conf push dev `
###使用文件映射检索您的环境
使用-m标志下载到当前项目文件夹的文件映射:
`bash export $(s3conf env dev -m) `
##与Docker一起使用
将此客户机与Docker结合使用的最直接的方法是在您的图像中创建entrypoint.sh 设置环境变量并映射所有需要的文件:
`bash #!/usr/bin/env bash set -e export $(s3conf env dev -m) exec "$@" `
并在运行容器时使用它(假设入口点位于/app/entrypoint.sh中,*可执行*)
`bash docker run --entrypoint `/app/entrypoint.sh` my_image my_command `