3

私が構築しているアプリは、ユーザーがファイルをアップロードできるようにします。ファイルはプライベートバケットのAmazon S3にアップロードされます。Amazon S3、アップロードからオブジェクトの可用性への遅延を処理する方法

その後、ユーザーが期限切れURLの時間を作成することによって、我々は許可され、ファイルをダウンロードすることができます。

AWS::S3::S3Object.url_for(attachment.path(style || attachment.default_style), attachment.bucket_name, :expires_in => expires_in, :use_ssl => true) 

私たちが抱えている問題は、AWS ::経由可用性へのアップロードからの短い遅延があるということですS3 :: S3Object.url_for。ユーザーがアップロード直後にファイルをダウンロードしようとすると、

215412-NameError (uninitialized constant Attachment::AWS): 
215413- app/models/attachment.rb:32:in `authenticated_url' 
215414- app/controllers/attachments_controller.rb:33:in `show' 

この遅延をどのように処理するかについてのアイデアはありますか?

おかげ

+0

遅延があることがわかっている場合は、すぐにそれを使用してみてください。私はまた遅れに気づいていない。あなたが要求後100msの遅れについて話している場合を除きます。そして、アップロードした直後にオブジェクトで何かをしようとしています。 – Layke

+0

この遅延は発生しません。オリジナルの画像を処理する必要があるため、アップロード後すぐに画像アップロードを利用できます。 – iwasrobbed

+0

そのスタックトレースは、アマゾンの問題よりもルビーの問題のように見えます –

答えて

1

あなたはどのくらいの遅延を見ていますか?これはどのくらいの頻度で起こっていますか?

https://github.com/PRX/s3-swf-upload-pluginを使用してブラウザからs3に直接アップロードしていますが、ファイルが存在することをコールバックするまでに、まだ使用できないというエラーは見たことがありません。

最初のアップロード時にオブジェクトを1つの状態にしてから、ファイルを検証するためにasycnhプロセスを使用し、有効とマークされた後で処理を進めます。 これは遅れが生じるので、それほど素晴らしい答えではないかもしれません。

+1

これまでのところあなたの環境に遅延が見られないという理由だけでは、あなたがそれを取得しないというわけではありません。私は分の遅れを見ましたが(私は何百万ものファイルをアップロードしています)。 AWSフォーラムを見ると、時には遅延が発生することがあります。 –

関連する問題