Iphone AFAmazonS3客户端问题上传
我正在使用尝试将文件上载到S3,我遇到了麻烦。我在模拟器中运行时收到错误的URL响应,在设备上运行时收到405响应。当收到405响应时,日志状态为100%的文件已上载。我不确定我做的是否正确。这是我的代码:Iphone AFAmazonS3客户端问题上传,iphone,ios,afnetworking,Iphone,Ios,Afnetworking,我正在使用尝试将文件上载到S3,我遇到了麻烦。我在模拟器中运行时收到错误的URL响应,在设备上运行时收到405响应。当收到405响应时,日志状态为100%的文件已上载。我不确定我做的是否正确。这是我的代码: AFAmazonS3Client *s3Client = [[AFAmazonS3Client alloc] initWithAccessKeyID:kAccessKeyID
AFAmazonS3Client *s3Client = [[AFAmazonS3Client alloc] initWithAccessKeyID:kAccessKeyID
secret:kSecret];
s3Client.bucket = kBucket;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documents = [paths objectAtIndex:0];
NSString *path = [documents stringByAppendingPathComponent:@"test.jpeg"];
[s3Client postObjectWithFile:path parameters:nil progress:^(NSInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
NSLog(@"%f%% Uploaded", (totalBytesWritten / (totalBytesExpectedToWrite * 1.0f) * 100));
} success:^(id responseObject) {
NSLog(@"Upload Complete");
} failure:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
只是猜测,但是
AFAmazonS3Client *s3Client = [[AFAmazonS3Client alloc] initWithAccessKeyID:@"kAccessKeyID"
secret:@"kSecret"];
kAccessKeyId/kSecret是常量,是吗?通常将常量定义为
#define kAccessKeyId @"myKeyId"
所以你不想在它们周围添加额外的引号。我真的很惊讶编译器会允许它。你的线路应该更像
AFAmazonS3Client *s3Client = [[AFAmazonS3Client alloc] initWithAccessKeyID:kAccessKeyID
secret:kSecret];
其他一些常规调试:
- 注销您尝试访问的路径,并确保您有适当数量的斜杠
- 405错误通常表示您用于访问特定URL的方法无效。你真的可以发帖吗/你有发帖的权限吗?这又回到了我的观点:当您不需要双引号时,您可能意外地添加了双引号,因此无法正确访问S3存储李>