s3cmd无效选择分配

时间:2013-06-15 07:43:00

标签: amazon-s3 s3cmd invalidation

我正在尝试使用s3cmd工具使我的文件无效, 看来s3cmd会自动为我选择一个发行版, 但是我从同一个桶中获得了更多的分配,我如何选择分配无效?

我试过这个:

s3cmd sync —cf-invalidate myfile cf://XXXXXXXXXX/mypath 但它不起作用。我明白了:        Invalid source/destination”

任何想法?

谢谢!

3 个答案:

答案 0 :(得分:1)

我相信你会想要通过原点(即你的S3桶或类似物品)强制失效,如下所示:

s3cmd --cf-invalidate _site/ s3://example-origin.com/

答案 1 :(得分:0)

我无法使s3cmd失效工作,因此我使用s3cmd更新文件,cloudfront-invalidator执行失效。该脚本读取s3cmd cloudfront-invalidator使用的aws身份验证。

#!/bin/bash

if [ -z "$(which s3cmd)" ]; then
  echo "s3cmd is not installed or is not on the PATH"
  exit -1
fi

if [ -z "$(which cloudfront-invalidator)" ]; then
  echo "cloudfront-invalidator is not installed or is not on the PATH"
  echo "See https://github.com/reidiculous/cloudfront-invalidator"
  echo "TL;DR: sudo gem install cloudfront-invalidator"
  exit -1
fi

function awsKeyId {
  awk -F '=' '{if (! ($0 ~ /^;/) && $0 ~ /aws_access_key_id/) print $2}' ~/.aws/config | tr -d ' '
}

function awsSecret {
  awk -F '=' '{if (! ($0 ~ /^;/) && $0 ~ /aws_secret_access_key/) print $2}' ~/.aws/config | tr -d ' '
}

export file="stylesheets/main.css"
export distributionId=blahblah
export bucket=www.blahblah

s3cmd -P -m 'text/css' put public/$file s3://$bucket/$f
cloudfront-invalidator invalidate `awsKeyId` `awsSecret` $distributionId $file

答案 2 :(得分:0)

这是我的最终结论:
经过多次尝试,解决方案非常有限。

  1. 请遵循以下格式:
  2. s3cmd sync --cf-invalidate --acl-public --preserve --recursive ./[local_folder] s3://[my_bucket]/[remote_folder]/

    1. 当我运行此命令时,实际文件夹应该在命令运行文件夹

    2. 本地文件应该有./

    3. 远程文件夹应以/

    4. 结尾