使用AWSiOS SDK,您如何对S3对象执行HEAD请求?

时间:2011-12-16 05:34:48

标签: ios amazon-s3 http-headers amazon-web-services

我希望在下载对象之前使用SDK(不能使用ASI)对对象执行HEAD请求以确定大小。有没有提供的方法来实现这一点我忽略,或者我被迫建立自己的S3Request,将httpMethod属性设置为“HEAD”并将构造的S3Request传递给AmazonS3Client的invoke:方法?

当我使用联合用户时,自己构建请求会有点冒险,所以我想确保我没有复制我忽略的内容。

2 个答案:

答案 0 :(得分:3)

我是适用于iOS的AWS SDK的维护者。您还可以使用S3GetObjectMetadataRequest执行相同的操作。

S3GetObjectMetadataRequest *request = 
[[S3GetObjectMetadataRequest alloc] initWithKey:FILE_NAME withBucket:BUCKET_NAME];
S3GetObjectMetadataResponse *response = [s3 getObjectMetadata:request];
int64_t fileSize = response.contentLength;

答案 1 :(得分:0)

原来是相当直接的,但仍然想知道是否有一种更可接受的方式来做头部。

S3GetObjectRequest *headRequest = [[[S3GetObjectRequest alloc] initWithKey:keyname withBucket: [bucketname]] autorelease];
headRequest.httpMethod = @"HEAD";

S3Response *headResponse = [[S3Response alloc] init];
headResponse = [self.awsConnection invoke:headRequest];