2017-08-23 14 views
1

node-s3-clientという名前のnpmパッケージを使用しています。これはNode.jsのaws-sdkのハイレベルラッパーで、ローカルプロジェクトディレクトリをアップロードしますS3バケット。AWS S3にアップロードされているイメージの期限切れとキャッシュコントロールヘッダーの設定

このパッケージを使用して、ファイルにいくつかのメタデータ、つまりExpiresCache-Controlのキー値のペアを渡します。 HTML、JS、CSS、JPEGファイルからなるディレクトリ全体をアップロードしています。しかし、私のS3バケットをチェックすると、私が設定しているヘッダはで、JSとCSSファイルにはしか適用されません。これらのヘッダはイメージには適用されません。

私はパッケージとaws-sdkのドキュメントを見てきましたが、一部のファイルにメタデータを選択的に適用し、他の人には適用しないという問題の原因を見つけることはできませんでした。

ここに私のconfigオブジェクトです:

const s3 = require('node-s3-client') 

const s3Config= { 
    localDir: './dist', 
    deleteRemoved: false, 
    s3Params: { 
     Bucket: 'cdn', 
     Prefix: 'dist/', 
     Metadata: { 
      'Cache-Control': 'max-age=31536000', 
      'Expires': oneYearLater(new Date()) 
     } 
    } 
} 

const client = s3.createClient({ 
    s3Options: { 
     accessKeyId: KEY_ID, 
     secretAccessKey: ACCESS_KEY, 
     signatureVersion: 'v4', 
     region: 'us-east-2', 
     s3DisableBodySigning: true 
    } 
}) 

client.uploadDir(s3Config) 

この問題を引き起こしている可能性がありますか?

答えて

1

アップロードするオブジェクトのパラメータを設定する方法に問題があると思います。試してください:

const s3Config= { 
    localDir: './dist', 
    deleteRemoved: false, 
    s3Params: { 
     Bucket: 'cdn', 
     Prefix: 'dist/', 
     CacheControl: 'max-age=31536000', 
     Expires: oneYearLater(new Date()) 
    } 
} 
関連する問題