2

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',
4

1 に答える 1

1

このヘッダーがありませんでした:

"x-amz-metadata-directive": "REPLACE"

var filename = "/example/file.mp4",
  headers = {
    "x-amz-metadata-directive": "REPLACE",
    'Content-Type': "application/octet-stream"
  };

client.copyFile(filename, filename, headers, function(error, resp) {
  //response is successful
});
于 2016-04-27T19:20:48.143 に答える