【问题标题】:Create and upload tar.gz to S3 bucket创建 tar.gz 并将其上传到 S3 存储桶
【发布时间】:2016-05-27 19:41:13
【问题描述】:

我有一个这样的接收后 shell 脚本:

#!/bin/bash

TGZNAME=imprv`date +%s`.tar.gz
TGZPATH=/var/git_out/imprv/
TGZFULL=$TGZPATH$TGZNAME
S3BUCKET=my-s3-bucket
S3PATH=s3://$S3BUCKET/imprv/

git --work-tree=/var/git_out/imprv/imprv --git-dir=/path/to/repositories/imprv/imprv.git checkout -f

echo " - creating tar "$TGZNAME >> /tmp/post-receive.log
tar -cjf $TGZFULL -C /var/git_out/imprv/imprv .
echo " - tar.gz created "$TGZFULL >> /tmp/post-receive.log

echo " - Uploading "$TGZFULL" to bucket "$S3PATH$TGZNAME >> /tmp/post-receive.log
s3cmd put $TGZFULL $S3PATH$TGZNAME --mime-type="application/gzip" >> /tmp/post-receive.log
echo " - operation complete" >> /tmp/post-receive.log

我的存储桶中没有任何内容,但是创建了 tar 文件,如果我手动输入 s3cmd put 命令,它可以正常工作。

我正在跟踪日志文件,一切似乎都进行得很好,它会等待创建压缩文件,然后再转到下一个 echo 语句,因此它不会尝试将文件放在 tar 之前。 gz 文件已创建。提前致谢。

【问题讨论】:

    标签: git bash amazon-s3 tar s3cmd


    【解决方案1】:

    要将文件上传到 s3,您应该:

    通过运行命令配置 CLI aws configure 然后aws s3 sync <local_from> s3://<bucket_name> 将本地目录与您的存储桶同步。

    更新: 不要忘记安装所需的库: aws cli aws s3cmd

    【讨论】:

    • 谢谢@D.Dimitrioglo。您的解决方案让我开始思考我是如何没有为 git 用户配置 AWS CLI 的。一旦完成,它就可以顺利运行。
    猜你喜欢
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    • 2020-10-17
    • 2018-04-25
    相关资源
    最近更新 更多