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

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

当我使用联合用户时,构建请求本身就有点冒险,所以我想确保我没有复制我忽略的东西。

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

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

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

 S3GetObjectRequest *headRequest = [[[S3GetObjectRequest alloc] initWithKey:keyname withBucket: [bucketname]] autorelease]; headRequest.httpMethod = @"HEAD"; S3Response *headResponse = [[S3Response alloc] init]; headResponse = [self.awsConnection invoke:headRequest];