2013-09-30 307 views
0

我试图寻找,但找不到更好的,我也是上面的代码试图下载的PDF,但它超出了我的理解,并给我很多错误,请帮我....如何从亚马逊usning亚马逊S3框架

S3GetPreSignedURLRequest * request = [[S3GetPreSignedURLRequest alloc] init]; 
request.bucket = @"bucket"; 
request.key = @"key"; 
request.contentType = @"image/jpeg"; 
request.httpVerb = @"GET"; 

AmazonCredentials *credentials = [[AmazonCredentials alloc] initWithAccessKey:ACCESS_KEY_ID withSecretKey:SECRET_KEY]; 
request.credentials = credentials; 

NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease]; 
[components setHour:1]; 
NSDate * oneHourFromNow = [[NSCalendar currentCalendar] dateByAddingComponents:components toDate:[NSDate date] options:0]; 

request.expires = oneHourFromNow; 

//get the presigned URL 
//NSURL * url = [[Constants s3] getPreSignedURL: request]; 

回答

0

在应用程序中包含秘密并在现场创建预先设置的URL没有任何意义。 iOS应用程序不应包含包含S3秘密,因为这些秘密可以用来做几乎不希望用户执行的操作(例如,上传和删除文件,创建和删除存储桶等)。

如果您希望PDF可公开访问,请在上传时将其设置为公共,并且可以使用任何HTTP库(例如http://s3.amazonaws.com/yourbucket/yourfile.pdf)在其URL上提供。你不需要S3框架来做到这一点 - NSURLConnection,或者甚至只是一个网络视图,将工作得很好。

+0

不,我不想让公共PDF文件可访问 – Anu

+0

如果您在应用程序中包含访问PDF的代码,它必须是公开访问的。唯一的问题就是你是如何将其公开化的,以及你想要在这个过程中暴露的其他风险。 – duskwuff

+0

我只是吓坏了,我试了2天,但找不到任何有用的东西,请你给我一个完整和简单的教程或例子:( – Anu