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

Я пишу приложение для 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 - это имя файла, например test.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

Что-то отсутствует или не так?

...