私のアプリケーションで剣道ファイルアップロードコントロールを使用しています。例えば20MBのファイルを選択します。リクエストは、このドキュメントをazureにアップロードし、blobを指すDBエントリを挿入する必要があるサーバに送られます。クライアントからキャンセルされたときにサーバー上のファイルアップロードをキャンセルする
サーバにすべてのバイトが転送され、残りの操作が(ファイルのアップロードやDBへのエントリの挿入のような)いつか行われると同時に、ユーザがクライアントからのアップロードをキャンセルすると、クライアント側でキャンセルされますが、サーバーは引き続きアップロードを進めます。 これはどのように処理する必要がありますか?何かご意見は?
ありがとうございます!
これは、私はあなたがブラウザを閉じているときに、新しい要求を行うことができるようになります考えていないと、それは確かに動作しないような接続があるときに任意のクライアント側スクリプトを使用して解決しなければならないものではありませんネットワークの問題や中止のために中断されました。はい、取り消しイベントがあると、キャンセルされたファイルを削除するためにサーバーサイドメソッドを呼び出す必要があります。 –
はい、しかし、必要なすべてのビットがサーバー側に転送された後、サーバー上のアップロードコードに時間がかかるとします(サイズの大きいファイルの場合)。同じ時間に、ユーザーはブラウザを閉じ、キャンセルイベントを処理し、アップロードされたドキュメント(Azureの点でBLOB)にキャンセルしようとします。これは、ファイルが完全にアップロードされていないため失敗します。 私は考えることができるいくつかの迅速な修正があるかもしれませんが、私はこれが他のほとんどのWebアプリケーションの共通のシナリオであると信じています。標準的なアプローチは何ですか? –
アップロードするストレージに依存する標準的な方法はありません。この記事を参照してください。https://www.simple-talk.com/cloud/platform-as-a-service/azure-blob-storage-part-4 - アップロード - 大きなブロブ/ –