Amazon s3 我可以更新现有的Amazon S3对象头属性吗?

Amazon s3 我可以更新现有的Amazon S3对象头属性吗?,amazon-s3,amazon,Amazon S3,Amazon,我有一个视频文件的内容类型为空的问题,希望根据文件的扩展名使用内容类型:video/**更新这些对象。但当我对内容类型相同的键/桶使用put方法时,它将被“0”内容长度覆盖 林克说 put将覆盖文件s3对象,该对象不符合我的目的 注意:我不想使用JavaSDK。由于移动设备的内存限制,我想使用普通的java httpput。您可以尝试使用具有相同源和目标的请求 PUT /yourvideo.flv HTTP/1.1 Host: bucket.s3.amazonaws.com Date: Wed,

我有一个视频文件的内容类型为空的问题,希望根据文件的扩展名使用内容类型:video/**更新这些对象。但当我对内容类型相同的键/桶使用put方法时,它将被“0”内容长度覆盖

林克说 put将覆盖文件s3对象,该对象不符合我的目的


注意:我不想使用JavaSDK。由于移动设备的内存限制,我想使用普通的java httpput。

您可以尝试使用具有相同源和目标的请求

PUT /yourvideo.flv HTTP/1.1
Host: bucket.s3.amazonaws.com
Date: Wed, 28 Oct 2009 22:32:00 GMT
x-amz-copy-source: /bucket/yourvideo.flv
Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
显然是这样修改元数据的

是的,我可以确认,副本正在工作:

PUT /test/123.png HTTP/1.1\r\n
Host: yourbucket.s3.amazonaws.com\r\n
Accept-Encoding: identity\r\n
Content-Length: 0\r\n
x-amz-storage-class: STANDARD\r\n
x-amz-copy-source: yourbucket/test/123.png\r\n
Date: Fri, 11 Jan 2013 15:16:48 GMT\r\n
Content-Type: image/gif\r\n # this is the content-type set
Authorization: AWS AKXXXXXDDRXXXXXX63CA:RcktkZ9nPwsXXXXXd+KXXXXXY=\r\n
x-amz-metadata-directive: REPLACE\r\n
\r\n
S3回复:

HTTP/1.1 200 OK
x-amz-id-2: Vf1bRJd+e4ru0y73GB0Ra0xYB2vv6GLWYKsHAC4AzE+a8uZB56Xy8+YTDkJ0/wfN
x-amz-request-id: C0E6A2823F3FB3E9
Date: Fri, 11 Jan 2013 15:16:49 GMT
Content-Type: application/xml
Content-Length: 234
Server: AmazonS3
HEAD /test/123.png HTTP/1.1\r\n
Host: yourbucket.s3.amazonaws.com\r\n
Accept-Encoding: identity\r\n
Date: Fri, 11 Jan 2013 15:25:23 GMT\r\n
Content-Length: 0\r\n
Authorization: AWS AXXXIXXXXMDDXXXXX7XXXCA :HoZ4Woxxw6SWlxxxx000Rxxm8ODQ=\r\n
\r\n
验证:

HTTP/1.1 200 OK
x-amz-id-2: Vf1bRJd+e4ru0y73GB0Ra0xYB2vv6GLWYKsHAC4AzE+a8uZB56Xy8+YTDkJ0/wfN
x-amz-request-id: C0E6A2823F3FB3E9
Date: Fri, 11 Jan 2013 15:16:49 GMT
Content-Type: application/xml
Content-Length: 234
Server: AmazonS3
HEAD /test/123.png HTTP/1.1\r\n
Host: yourbucket.s3.amazonaws.com\r\n
Accept-Encoding: identity\r\n
Date: Fri, 11 Jan 2013 15:25:23 GMT\r\n
Content-Length: 0\r\n
Authorization: AWS AXXXIXXXXMDDXXXXX7XXXCA :HoZ4Woxxw6SWlxxxx000Rxxm8ODQ=\r\n
\r\n
S3使用正确的内容类型(我错误地将其设置为image/gif而不是image/png)进行回复


这在S3RESTAPI中有点奇怪。PUT应用于创建项,POST用于更新,但它们同时使用PUT和POST来创建对象。老实说,我看不到更新的可能性,尽管我知道这是可以做到的,因为web客户端和客户端工具都可以更新属性。