Загрузите изображение на S3, используя предварительно подписанный URL-адрес, получив 403

Я пишу приложение для iPhone с использованием платформы Three20, теперь я использую предварительно подписанный URL-адрес для загрузки изображений на S3, но безуспешно.

Ниже приведен код

- (void)uploadImage {
    TTURLRequest *request = [TTURLRequest requestWithURL:_presignedUrl delegate:self];

    request.httpMethod = @"POST";
    request.cachePolicy = TTURLRequestCachePolicyNoCache; 
    request.cacheExpirationAge = TT_CACHE_EXPIRATION_AGE_NEVER;

    // add the image file
    [request addFile:UIImageJPEGRepresentation(_image, 1.0)
            mimeType:@"image/jpeg" 
            fileName:_key];

    [request setValue:@"MyApp/1.0" forHTTPHeaderField:@"User-Agent"];
    [request setValue:@"image/jpeg" forHTTPHeaderField:@"Content-type"];

    TTURLXMLResponse *response = [[TTURLXMLResponse alloc] init];
    request.response = response;
    [response release];

    [request send];
}

_key - это имя файла, например. тест.jpg

_presignedUrl выглядит примерно так:

https://s3.amazonaws.com/<bucket name>/test.jpg?Expires=(expires)&AWSAccessKeyId= (AWSAccessKeyId)&Signature=(Signature)

И предварительно подписанный URL-адрес генерируется на стороне сервера с использованием AWS Java SDK с использованием GeneratePresignedUrlRequest с , test.jpg в качестве ключа, а также POST в качестве метода http.

Что-то отсутствует или неправильно?


person tom    schedule 28.10.2011    source источник
comment
Посмотрел лог на s3, там в основном написано SignatureDoesNotMatch   -  person tom    schedule 29.10.2011
comment
вам удалось это решить? Я столкнулся с той же проблемой ошибка aws s3 403"> stackoverflow.com/questions/15643135/   -  person Mayank Mehta    schedule 27.03.2013
comment
Мне удалось решить ту же проблему для Android, проверьте это ‹stackoverflow.com/questions/15643135/  -  person Mayank Mehta    schedule 27.03.2013