我希望在下载对象之前使用SDK(不能使用ASI)对对象执行HEAD请求以确定大小。有没有提供的方法来实现这一点我忽略,或者我被迫建立自己的S3Request,将httpMethod属性设置为“HEAD”并将构造的S3Request传递给AmazonS3Client的invoke:方法?
当我使用联合用户时,自己构建请求会有点冒险,所以我想确保我没有复制我忽略的内容。
答案 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];