0

Core Data を DynamoDB にバックアップすることをテストしており、適切なメソッドを次のように実装AWSPersistenceDynamoDBIncrementalStoreDelegateして、アプリのデリゲートに実装しました。credentials

- (AmazonCredentials *)credentials
{
    if(credentials==nil) {
        credentials = [[AmazonCredentials alloc] initWithAccessKey:@"ACCESS_KEY" withSecretKey:@"SECRET_KEY"];
    }
    return credentials;
}

明らかに、実際のセキュリティ資格情報を適切に置き換えます (これは本番環境で実装する方法ではありませんが、私が行っているプロトタイピング用に 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オブジェクトがインスタンス化されており、詳細が正しいことを確認できます。また、同じ認証情報を使用してセッションを確立しAmazonS3Client、バケットからファイルをダウンロードできるため、確実に有効です。

誰もこれを見たことがありますか / 問題が何であるか知っていますか?

4

2 に答える 2

1

現在、DynamoDB クライアントがセッション資格情報を必要とするのは事実ですが、これらは Secure Token Service (STS) クライアントによって提供され、TVM を実装する必要はありません。

iOS 用 STS クライアント

于 2013-01-15T20:32:35.447 に答える
1

わかりました。Github https://github.com/aws/aws-sdk-ios/blob/master/src-persistence/AWSPersistenceDynamoDBIncrementalStore.mのコードを見ると、セキュリティ トークンを含む 3 つの引数コンストラクタを使用する必要があることがわかりますDynamoDB を使用して Core Data をバックアップするには、ドキュメントで言及されていると便利ですが、とにかく、これを行うには TVM を実装する必要があります。

于 2013-01-15T14:14:25.050 に答える