2016-11-10 1 views
0

Wie bekomme ich die Metadaten aus meinem S3-Bucket, die den benutzerfreundlichen Dateinamen der Datei zu Anzeigezwecken enthält.iOS Amazon Cognito S3-Metadaten Dateinamen

Zum Beispiel in meinem Tisch Ansicht habe ich eine Liste von Dateien in folgendem Format:

private/eu-west-1: 2dcdgv-des3-3res-fsgr-123456xxxxx/Demo Directory/bxxxxxx-xxxx- xxxx-xxxx-xxxxxxxxxxx

Jetzt sollte dieser Teil (der Schlüssel) "bxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx" etwa wie myFile.jpg sein.

+0

hochladen Sie die Dateien? In diesem Fall können Sie beim Hochladen private Metadaten (z. B. einen Anzeigenamen) anhängen. Aber soweit ich sagen kann, gibt es keine Möglichkeit, diese Metadaten für mehrere Dateien auf einmal anzufordern, Sie müssen sie einzeln nacheinander anfordern. Siehe: http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html –

+0

Ich versuche zu downloaden. Ja, Sie haben Recht, ich muss es einzeln herunterladen. Frage ist, wo kann ich ein funktionierendes Beispiel des objektiven c-Codes finden, den ich verwenden kann? – Luben

Antwort

0

Für Interessenten ich es wie folgt gelöst:

-(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; 
} 
Verwandte Themen