2013-09-30 303 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