お客様のファイルを保存するためのファイル ストレージ アカウントがあります。しかし、ファイルは頻繁にクラッシュします。内容が「\0\0\0\0\0\0」のような空文字列に置き換えられたようです。
通常、破損したファイルは数日後 (または数か月後) に発見されます。
cloudFile.DownloadText returns string like "\0\0\0\0\0\0".
http://www.jssor.com/jssordev/problems*にあるサンプル ファイル「100days.slider」を次に示します。
次の 3 つの方法でファイルを azure ファイル ストレージに保存します。
- テキストをアップロード
cloudFile.UploadText(content, Encoding.UTF8);
- 別のクラウド ファイルからアップロードする
dstCloudFile.UploadFromStream(srcCloudFile.OpenRead());
- ユーザー投稿ファイルからアップロード
cloudFile.UploadFromStream(httpPostedFile.InputStream);
何が起こっているか知っている人はいますか?
http://www.jssor.com/danishrabbani*で「full-width-slider.slider」を確認してください* これは、今日 (2016-10-24) に新しく破損したファイルです。
ユーザーは次の 2 つの手順を実行し、2 番目の手順で問題が見つかりました。
[OK] ユーザーがhttp://www.jssor.com/danishrabbani/full-width-slider.slider/=editでファイルを編集しました。これは、ファイルを正しく読み取ったことを意味します。
[問題] その後、ユーザーは前のページからhttp://www.jssor.com/danishrabbani/full-width-slider.slider/=previewに移動します。
両方のステップで同じファイルが読み取られるため、問題は 2 回目の読み取りが原因である可能性があります。ユーザーが手順 1 と手順 2 の間にデータを保存したと仮定すると、問題の原因はcloudFile.UploadText(content, Encoding.UTF8);
.
編集 2016-10-26
今日の新しい空のファイル 'different-size-photo-slider-with-text.slider' はこちらにあります http://www.jssor.com/mfleury*
UploadText
との両方の方法でファイルのアップロードを調査しましたがUploadFromStream
、例外は発生しませんでした。問題は、Azure ファイル ストレージ サーバー側またはファイル ストレージ SDK ライブラリにあると思います。
編集 2016-10-27
今日の新しい空ファイル「different-size-photo-slider.slider」はこちらhttp://www.jssor.com/zubairqd*
編集 2016-11-08
例外は発生せず、ファイルのアップロードは常に成功しました。
ユーザーは通常、最初にデモのコピーを保存します。dstCloudFile.UploadFromStream(srcCloudFile.OpenRead());
その後、ユーザーはスライダー メーカーでファイルを編集し、ファイルを保存します。
cloudFile.UploadText(content, Encoding.UTF8);
破損したファイルの読み取りを追跡しました。ほとんどの場合、X64 または WOW64 システムの firefox (バージョン 49) で発生します。したがって、問題は によって引き起こされる可能性がありますcloudFile.UploadText(content, Encoding.UTF8);
。
また、約 1 年前に私の win7 (x86) システムで発生しました。その時点では lzw 圧縮はありません。
スライダー メーカーからファイルを保存するには、lzw 圧縮データをサーバーに送信し、解凍しcloudFile.UploadText
てからファイル ストレージに格納します。最初の 2 文字が「\0\0」であるかどうかを確認しましたが、そのようなテキストは見つかりませんでした。