質問する
1080 次
3 に答える
1
次のように、オリジン (つまり、S3 バケットなど) を介して無効化を強制しようとしていると思います。
s3cmd --cf-invalidate _site/ s3://example-origin.com/
于 2013-09-23T10:48:40.170 に答える
1
これが私の最終的な結論です。
何度も何度も試行した後、解決策は非常に制限されています。
- 次の形式に従います。
s3cmd sync --cf-invalidate --acl-public --preserve --recursive ./[local_folder] s3://[my_bucket]/[remote_folder]/
このコマンドを実行すると、実際のフォルダーはコマンド実行フォルダーにある必要があります
ローカル ファイルには ./ が必要です
リモート フォルダは / で終わる必要があります
于 2015-06-07T20:14:30.603 に答える
0
s3cmd
の無効化がうまくいかなかったのでs3cmd
、ファイルを更新cloudfront-invalidator
して無効化を行っていました。s3cmd
スクリプトは、 で使用されるaws 認証を読み取りますcloudfront-invalidator
。
#!/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
于 2015-04-17T18:19:16.120 に答える