【问题标题】:copy file to AWS S3 bucket将文件复制到 AWS S3 存储桶
【发布时间】:2016-08-10 18:22:59
【问题描述】:

有没有办法通过命令行传递我是访问密钥来将文件从我的本地复制到 S3 存储桶。就像

cp $file_name AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY $S3_BUCKETNAME

尝试了上面的命令,但没有成功

【问题讨论】:

    标签: shell amazon-web-services jenkins amazon-s3


    【解决方案1】:

    首先,安装awsclidocumentation):

    pip install [--user] awscli
    

    然后:

    export AWS_ACCESS_KEY_ID=...
    export AWS_SECRET_ACCESS_KEY=...
    aws s3 cp <file> <S3Uri>
    

    还可以使用aws 配置文件 (documentation) 中的配置文件指定凭据:

    cat <<EOF >~/.aws/config
    [profile test1]
    aws_access_key_id=foo1
    aws_secret_access_key=bar1
    [profile test2]
    aws_access_key_id=foo2
    aws_secret_access_key=bar2
    EOF
    aws --profile test1 s3 cp <uri1> <file>
    aws --profile test2 s3 cp <file> <uri2>
    

    注意:

    来自环境变量的凭证优先于来自共享凭证和 AWS CLI 配置文件的凭证。

    因此,要使用多个凭据集,请确保它们都不作为环境变量传递,因为它们会覆盖配置文件中的那些。

    【讨论】:

    • 感谢 David 的回复 ..是的,我一直在 jenkins 作业中运行这个 aws s3 cp ,同时通过环境变量传递 AWS_ACCESS_KEY_ID=... 和 AWS_SECRET_ACCESS_KEY 。但是问题我现在面临的是在詹金斯包含的脚本中也必须将工件推送到另一个 S3 存储桶..所以它无法推送到另一个 S3 存储桶,因为两个 S3 存储桶的访问密钥不同
    • 我们如何在运行 cp 命令时调用该特定配置文件...或者它会被自动获取
    • @rreddy:您可以将多个 AWS 凭证用于多个 S3 存储桶。为什么不?通过使用 Jenkins,您可以根据需要注入多个 AWS。然后注入 Cred1 export Cred1 cp s3bucket1
    猜你喜欢
    • 2017-11-23
    • 2019-08-07
    • 2018-07-03
    • 2022-01-11
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 2019-02-16
    相关资源
    最近更新 更多