s3预分配URL的存储桶策略

2024-09-20 04:05:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我是amazons3的新手,我正在尝试使用presigned将图片上传到我的s3存储桶中网址它显示了拒绝访问。我的url格式是

https://bucketname.s3.amazonaws.com/imagename.jpeg&AWSAccessKeyId=XXXX&Expires=XXXX&Signature=XXXX

我在网上搜索发现,签名网址不需要上传bucket策略,所以我没有创建任何bucket策略。在

我用python编写了一段代码:

^{pr2}$

正在尝试从ios应用程序上载图像:

-(void) uploadImage:(UIImage *)image atUrl:(NSString *)url withMimeType:(NSString *)mimeType {
    NSData *imageData = UIImageJPEGRepresentation(image, 0.1);
    NSURL *requestURL = [NSURL URLWithString:url];
    AFHTTPSessionManager *client = [[AFHTTPSessionManager alloc] initWithBaseURL:requestURL];
    client.requestSerializer=[AFJSONResponseSerializer serializer];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setHTTPMethod:@"PUT"];
    [request setValue:mimeType forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:imageData];
    [request setValue:[NSString stringWithFormat:@"%lu", (unsigned long)[imageData length]] forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"public-read" forHTTPHeaderField:@"x-amz-acl"];
    [request setURL:requestURL];

    NSURLSessionDataTask *task = [client dataTaskWithRequest:request completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
        if (error) {
            NSLog(@"Error: %@", error);
        } else {
            NSLog(@"%@ %@", response, responseObject);
        }
    }];
    [task resume];
}

从过去的2天,我仍然无法上传图像到我的水桶。请帮助


Tags: 图像clienturls3bucketrequesterror策略