2016-11-10 56 views
0

如何从我的S3存储桶获取元数据,其中包含用于显示目的的文件的友好文件名。iOS Amazon Cognito S3元数据文件名

举例来说,在我的表视图我有文件的格式如下列表:

私人/ EU-西1:2dcdgv-des3-3res-fsgr-123456xxxxx/demo目录/ bxxxxxx-XXXX- xxxx-xxxx-xxxxxxxxxxx

现在这部分(关键)“bxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx”应该是类似myFile.jpg的例子。

+0

你上传的文件?如果是这样,您可以在上传时附加私有元数据(例如显示名称)。但据我所知,没有办法一次请求多个文件的元数据,你必须一次请求它。请参阅:http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html –

+0

我正在尝试下载。是的,你是正确的,我必须一次下载它。问题是我可以在哪里找到可以使用的目标C代码的工作示例? – Luben

回答

0

对于那些有兴趣我解决它,如下所示:

-(NSString *)getFileMetaData:(NSString *)fKey 
{ 
__block NSString *fName = @""; 

AWSS3 *s3 = [AWSS3 defaultS3]; 
AWSS3HeadObjectRequest *request = [AWSS3HeadObjectRequest new]; 
request.bucket = @"myS3BucketName"; 
request.key = fKey; 

[[[s3 headObject:request] continueWithBlock:^id _Nullable(AWSTask<AWSS3HeadObjectOutput *> * _Nonnull task) 
{ 
    if(task.result.metadata != nil) 
    { 
     //Do something with it... 
    } 
    else 
    { 
     //Handle no data 
    } 
    return nil; 
}] waitUntilFinished]; 

return fName; 
}