s3 にファイルがある場合、そのファイルのメタデータを変更するにはどうすればよいですか?
事実上同じものになる新しいヘッダーを使用して、同じ場所に「コピー」できるようです。
これを行うためのノード クライアントとしてknoxを使用しています。Content-Type
問題のファイルのヘッダーは既に に設定されていますvideo/mp4
が、変更したいと思いapplication/octet-stream
ます。これは、このリンクによってブラウザがリソースをブラウザ ウィンドウに表示する代わりにダウンロードするようにするためです。
この関数のknox ソースへのリンク
var filename = "/example/file.mp4",
headers = {'Content-Type': "application/octet-stream"};
client.copyFile(filename, filename, headers, function(error, resp) {
//response is successful
});
応答は成功しましたが、s3 でリソースをリロードすると、ヘッダーが変更されたことがわかりません。
基になる API 呼び出しが次のようになっていることがわかります。
'PUT /example/file.mp4 HTTP/1.1\r\nContent-Type: application/octet-stream
x-amz-copy-source: /bucket/example/file.mp4
Content-Length: 0\r\nDate: Thu, 28 Jan 2016 21:13:12 GMT
Host: cc-video-archives-dev.s3.amazonaws.com
Authorization: <redacted>=\r\nConnection: close\r\n\r\n',