2012-08-13 4 views
5

Próbuję usunąć publiczny obraz (cannedACL właściwość S3PutObjectRequest, aby przesłać obraz został [S3CannedACL publicRead]) przesłany do wiadra S3.Jak korzystać z pakietu SDK AWS iOS, aby usunąć obiekt?

Istnieje klasa S3DeleteObjectRequest w pakiecie AWS SDK documentation, ale wydaje się, że nie ma żadnych właściwości ani metod inicjowania dla this class.

podstawie przykładowego kodu w innych językach, wygląda na to nie powinno być key lub bucket właściwość lub metoda inicjalizacji ustawiania tych właściwości, ponieważ nie są w iOS SDK S3PutObjectRequest klasy, używany do przesyłania plików do wiadra.

Co tu się dzieje? Czy pakiet SDK jest po prostu niekompletny? Czy istnieje sposób na usunięcie obiektu za pomocą zestawu SDK systemu iOS AWS?

Odpowiedz

6

Po prostu wychodzisz z dokumentacji, z którą się łączyłeś, ale czy to nie działa?

[s3Client deleteObjectWithKey:@"objectKey" withBucket:@"my-bucket"]; 
+0

pracował jak urok. Chyba potrzebowałem RTFM :) –

1

Odpowiedź Art Gillespiego zadziałała również dla mnie.

Jednak odkryłem także, że można osiągnąć to samo poprzez ustawienie key i bucket atrybuty na S3 usunąć żądanie obiektu:

S3DeleteObjectRequest *dor = [[S3DeleteObjectRequest alloc] init]; 
dor.key = AWS_OBJ_PATH; 
dor.bucket = AWS_BUCKET; 

[s3Client deleteObject:dor]; 
8

Dla iOS SDK dla S3 V2, ten kod przydała

AWSS3 *s3 = [AWSS3 defaultS3]; 
 
       AWSS3DeleteObjectRequest *deleteRequest = [AWSS3DeleteObjectRequest new]; 
 
       deleteRequest.bucket = S3BucketName; 
 
       deleteRequest.key = climb.imageKey; 
 
       [[[s3 deleteObject:deleteRequest] continueWithBlock:^id(BFTask *task) { 
 
        if(task.error != nil){ 
 
         if(task.error.code != AWSS3TransferManagerErrorCancelled && task.error.code != AWSS3TransferManagerErrorPaused){ 
 
          NSLog(@"%s Error: [%@]",__PRETTY_FUNCTION__, task.error); 
 
         } 
 
        }else{ 
 
         // Completed logic here 
 
        } 
 
        return nil; 
 
       }] waitUntilFinished];

ta opiera się w dużej mierze na testy jednostkowe, które zostały napisane dla biblioteki tutaj: https://github.com/aws/aws-sdk-ios/blob/master/AWSS3Tests/AWSS3Tests.m