2016-06-15 4 views
2

Amazon S3バケットからイメージ(webpイメージ)をダウンロードしようとしているときにMorningから私の髪を引き出し、キャッシュしています。私が取ったアプローチが何であれ、私はいくつかの他のロードブロックを打った。ブログ記事hereに示すような画像を取得するためにSDWebImageを使用して、私はこれを達成しようとしたさまざまな方法、iOS:AWS S3イメージをダウンロードしてキャッシュに入れておきます。

  1. サブクラスNSURLProtocol &。このアプローチの問題は、サブクラス化されたプロトコルのcanInitWithRequestメソッドは、私のサブクラス化されたNSURLProtocolクラスを登録しても難しいとは決して言われないということです。
  2. SDWebImageとその他のライブラリを直接使用する予定ですが、SDWebImageにAuthorizationヘッダーを設定する規定がないため、SDWebImageを設定しようとすると難しく、SDWebImageはNSMutableURLRequestを作成している間は無視します。ダウンロード。

だから、今私はオプション画像をダウンロードするにはアマゾンSDKを使用して、独立してSDWebImageのSDImageCacheを使用して、それをキャッシュするのいずれかで、左、または私は私のプロジェクトにSDWebImageのソースコードを追加する必要があるのですし、私権限ヘッダーを取得するためにソースを変更する必要があります。

これを達成するためのよりよい方法があれば教えてください。私がしようとしていることを達成するための最良の方法は何かを指すことができれば嬉しいです。

ありがとうございます。

+0

iOS向けにAWS SDKを使用するか、AWSモバイルハブを使用することができます。https://aws.amazon.com/mobile/ –

+0

@ RohanDubalええ、私はAWS SDKを使うことができますが、問題はそれが私の主な関心事であるボックスからのキャッシュをサポートしていないことです。 – iamyogish

+0

モバイルハブを使用し、ファイルをダウンロードしてキャッシュに保存するユーザーファイル/コンテンツ配信機能を有効にすることで、いつでもアプリでネイティブに開くことができます。特定のユースケースは何ですか?前述の機能がユースケースを満たしていますか? –

答えて

0

正直言って、私はこれを長い間見てきましたが、AWSが提供するキャッシュシステムには満足できませんでした。代わりに、私はKingfisher https://github.com/onevcat/Kingfisherを使用することを選択しました。高度にカスタマイズが可能で、完璧に「すぐに」動作するため、お勧めします

+0

こんにちはギャレット、私は他のプロジェクトにキングフィッシャーを使用しました。しかし、問題は私がこのタスクのためにKFを使うことができないことです。私はKFを使って画像をダウンロードする方法を微調整する必要があります。たとえば、S3にREST認証を使用している場合は、KFがサポートしていない承認ヘッダーを送信できる必要があります。 Amazon SDKを使用してイメージをダウンロードしている場合は、KFを使用してイメージをダウンロードすることはありません。Amazon SDKを使用してダウンロードしたイメージをキャッシュする場合にのみ使用します。 – iamyogish

+0

また、KFを使用してS3から画像をダウンロードした方法を教えてください。ダウンロードした画像にKFのキャッシュを使用しただけでしたか、KFを使用して認証ヘッダーを送信できたか、それともあなたが従った方法がありますか?これは私に大きな助けになります。ありがとう – iamyogish

+0

@iamyogish素晴らしい質問、私の場合、私はユーザーKFも画像をダウンロードすることができました。私は自分のイメージを公開したからです。私はそれがすべての場合に可能性ではないことを理解しています。 KFのドキュメントによると、NSMutableURLRequestを使用して必要なauthヘッダーをダウンロード要求に組み込むことができ、[link] http:// stackoverflowを回避するために/を最後に保持するように見えます。com/questions/18885587/nsurlconnection-authorization-header-not-working –

関連する問題