コンテキスト:アイテムを一覧表示するプロセスの一部として、ユーザーが画像をアップロードするサイトを構築しています。見た目に美しいだけでなく、ユーザーがアイテムをアップロードして説明するのに役立つため、アップロードフォームに画像のプレビューを表示したいと思います。
問題: ブラウザのサンドボックス化のため、画像のプレビューを表示するには、サーバーにアップロードする必要があります(ファイル入力フォームを送信しない限り、画像データをJSに取得できません)。ただし、画像を整理するために、ユーザーが入力したデータに基づく識別子を使用して画像を保存します(この場合、名前をサニタイズし、ファイル名として/ useruploads / user_idフォルダーに使用します)。
ユーザー入力(つまり、ファイルのsha1)の依存関係を取り除くためにファイルの命名スキームを変更することはできますが、s3へのアップロードとイメージのサイズ変更はコストのかかる操作であり、リソースを不必要に拘束したくありません。サイズを変更してサムネイルを生成せずに画像をアップロードすると、アイテムに関する情報を含むフォームが送信された後、アプリケーションはS3からデータをストリーミングし、サイズを変更してサムネイルを生成してから、画像を再アップロードする必要があります。 、これはやや回り道のようです。
これはかなり一般的な問題だと思います。この点に関して、画像のアップロードの処理方法について誰かがパターンやアドバイスを持っているのではないかと思います。