通过aws命令将内容编码设置为特定文件

时间:2014-11-27 08:14:38

标签: amazon-s3 aws-cli

我通过aws命令部署静态应用程序。 我通过以下命令将所有文件从我的文件夹复制到s3存储桶:

aws s3 sync C:\app s3://myBucket

我想将内容编码设置为gzip,仅限于js,jpg和html文件。 我通过此命令成功为所有文件夹执行此操作:--content-encoding gzip 我怎么能只针对特定的文件类型呢?

1 个答案:

答案 0 :(得分:1)

这是旧的,但我需要找到一种方法:我没有使用Cloudfront,而我们使用的代理并不处理gzip ......所以:

  1. 排除所有文件
  2. 根据需要包含单个文件类型
  3. 设置适当的编码/选项
  4. 下面我还添加了访问控制和缓存控制,并删除了本地目录中不存在的s3中的任何文件

    我已将JS / CSS与所有图片分开,但这可能不是必需的。

    但是我没有明确地为每个人设置内容编码/缓存,因此我确实遇到了很多麻烦 - 包括,所以我将其设置如下,以使其更清晰。

    我发现的AWS文档并未提及任何此类内容

    aws s3 sync ./dist/ s3://{bucket} \
    --exclude "*" \
    --include "static/*.ico" --acl "public-read" --cache-control no-cache \
    --include "static/*.png" --acl "public-read" --cache-control no-cache \
    --include "*.html" --acl "public-read" --cache-control no-cache \
    --include "static/img/*.svg" --acl "public-read" --cache-control no-cache \
    --delete \
    
    aws s3 sync ./dist/ s3://{bucket} \
    --exclude "*" \
    --include "static/js/*.js" --acl "public-read" --cache-control  no-cache --content-encoding gzip \
    --include "static/css/*.css" --acl "public-read" --cache-control no-cache --content-encoding gzip \
    --delete \ 
    

    仅从s3开始提供相当简洁的速度提升。