在 s3 文件上更改 header
Change header on s3 file
如果我在 s3 上有一个文件,我该如何更改该文件的元数据?
看起来我可以 "copy" 它与新的 header 相同的位置,这实际上是同一件事。
我使用 knox 作为节点客户端来执行此操作。有问题的文件已经将 Content-Type
header 设置为 video/mp4
,但我想将其更改为 application/octet-stream
。这样做的原因是这样 link 会触发浏览器下载资源,而不是在浏览器中显示资源 window.
Link 至 knox source 此函数
var filename = "/example/file.mp4",
headers = {'Content-Type': "application/octet-stream"};
client.copyFile(filename, filename, headers, function(error, resp) {
//response is successful
});
响应成功,但是当我在 s3 中重新加载资源时,我没有看到 headers 发生了变化。
我可以看到底层的 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',
我错过了这个 header:
"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
});
如果我在 s3 上有一个文件,我该如何更改该文件的元数据?
看起来我可以 "copy" 它与新的 header 相同的位置,这实际上是同一件事。
我使用 knox 作为节点客户端来执行此操作。有问题的文件已经将 Content-Type
header 设置为 video/mp4
,但我想将其更改为 application/octet-stream
。这样做的原因是这样 link 会触发浏览器下载资源,而不是在浏览器中显示资源 window.
Link 至 knox source 此函数
var filename = "/example/file.mp4",
headers = {'Content-Type': "application/octet-stream"};
client.copyFile(filename, filename, headers, function(error, resp) {
//response is successful
});
响应成功,但是当我在 s3 中重新加载资源时,我没有看到 headers 发生了变化。
我可以看到底层的 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',
我错过了这个 header:
"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
});