我測試了備份核心數據到DynamoDB,我已經在我的應用程序委託實現AWSPersistenceDynamoDBIncrementalStoreDelegate
,與相關credentials
方法,這樣實施:爲什麼我的AmazonCredentials對象無效?
- (AmazonCredentials *)credentials
{
if(credentials==nil) {
credentials = [[AmazonCredentials alloc] initWithAccessKey:@"ACCESS_KEY" withSecretKey:@"SECRET_KEY"];
}
return credentials;
}
顯然代我真正的安全憑據合適的(這ISN」 t如何實施生產,但我不想爲我正在做的原型設置TVM)。
然而,當我試圖創建一個Entity
這樣:
Track *track = (Track*)[NSEntityDescription insertNewObjectForEntityForName:@"Track" inManagedObjectContext:appDelegate.managedObjectContext];
我收到以下錯誤:
error: Error Domain=com.amazonaws.coredata.AWSPersistenceDynamoDBClientErrorDomain Code=-1 "The operation couldn’t be completed. (com.amazonaws.coredata.AWSPersistenceDynamoDBClientErrorDomain error -1.)" UserInfo=0xa5363d0 {message=The protocol - (AmazonCredentials *)credentials didn't return a valid AmazonCredentials object.}
我可以看到AmazonCredentials
對象實例化,並具有正確的細節我可以使用相同的憑據來建立會話並從存儲桶下載文件,因此它們絕對有效。
有沒有人看過這個/知道問題是什麼?
已經觀察到建立一個TVM我意識到(鮑勃也指出)是STS已提供給了iOS SDK去年然而,幾乎所有的AWS文檔仍然是指使用TVM ,因此我添加了一個關於如何獲得這個工作的快速書寫http://codeghost.co.uk/blog/2013/1/15/authenticating-against-aws-with-sts – codeghost