2012-03-12 23 views
3

iOSのAmazon S3からファイルをダウンロード中。断続的にNSURLConnectionDownloadDelegateのメソッドdidFailWithErrorは:と呼ばれ、これは私がNSErrorオブジェクトを受け取っログインしたときに得たものである取得SSErrorDomainエラーコード109. Amazon S3からのNewsStandダウンロード

エラーコード:109 エラードメイン:SSErrorDomain エラー説明:「.s3.amazonaws.comに接続できません」

すべてのAppleのドキュメント、StackOverflowおよびその他のサイトを検索しましたが、これについて何も見つかりませんでした。今日私は、私の開発者アカウントを使ってこれについてAppleにテクニカルクエリを提出しました。

更新:だからHTTPレスポンスのエラーコード(403禁止)に見た後、私はアイデアを得た

。これは、S3からの "RequestTimeTooSkewed"エラーのためです(要求時間と現在の時間の差が大きすぎます)。私はiPadの/ Macのシステム時間を1時間変更することでそれをチェックしたが、小さな(200kb)ファイルであってもこのエラーは直ちに起こっている。

今では多くのブログで示唆されているように、私は最初の日付文字列を取得するには、以下のようにAWSにHEAD要求を行うと、システムの日付

NSString *awsURL = @"http://s3.amazonaws.com"; 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:awsURL]]; 
    [request setHTTPMethod:@"HEAD"]; 

    NSHTTPURLResponse *response; 
    [NSURLConnection sendSynchronousRequest:request returningResponse:&response error: NULL]; 

    NSString *dateString = nil; 

    if ([response respondsToSelector:@selector(allHeaderFields)]) { 
     dateString = [[response allHeaderFields] objectForKey:@"Date"]; 
    } 
    return dateString; 

とNSMutableURLRequest

でのDateヘッダとしてこの設定を渡しておりません
[urlRequest setValue:awsDateString forHTTPHeaderField:@"Date"]; 

私は、ダウンロード

NKAssetDownload *nkAssetDownload = [nkIssue addAssetWithRequest:urlRequest]; 

のために私の問題を追加していこの要求まだ同じエラー!!!!私の最後の状況よりももっと狂っています。

誰でも?

アップデート2

私は、日付文字列に「0000」と「GMT」を置き換えることによって、(私のiPadのも、システムクロックが正しくない)要求を正常に作ることができました。

更新3 まだいくつかのリクエストは同じエラーで失敗しますが、これは奇妙なものですが、NewsStand Frameworkが壊れていると思われます。

答えて

0

これはRequestTimeTooSkewedエラーであり、要求に追加するS3サーバのヘッドレスポンスから日付を取得する上記のコードは、そのトリックを行います。

関連する問題