0

我们有文件存储帐户来为我们的客户存储文件。但是文件经常崩溃。似乎内容已替换为“\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 文件存储中,

  1. 上传文字cloudFile.UploadText(content, Encoding.UTF8);
  2. 从另一个云文件上传dstCloudFile.UploadFromStream(srcCloudFile.OpenRead());
  3. 从用户发布的文件上传cloudFile.UploadFromStream(httpPostedFile.InputStream);

有谁知道发生了什么?

检查http://www.jssor.com/danishrabbani上的“full-width-slider.slider”* 这是今天(2016 年 10 月 24 日)一个新的损坏文件。

用户经历了以下 2 个步骤,在第 2 步发现了问题。

  1. [OK] 用户在http://www.jssor.com/danishrabbani/full-width-slider.slider/=edit编辑了文件,这意味着它正确读取了文件。

  2. [问题] 然后用户从上一页转到http://www.jssor.com/danishrabbani/full-width-slider.slider/=preview 。

两个步骤都读取同一个文件,所以问题可能是由第二次读取引起的。假设用户在步骤 1 和步骤 2 之间保存了数据,那么问题应该是由cloudFile.UploadText(content, Encoding.UTF8);.

编辑 2016-10-26

今天的新空文件“不同大小的照片滑块与文本.滑块”在这里找到http://www.jssor.com/mfleury*

UploadText我们以和两种方式对文件上传进行了调查UploadFromStream,没有出现异常。我认为问题出在 azure 文件存储服务器端或文件存储 SDK 库。

编辑 2016-10-27

今天的新空文件“不同大小的照片滑块.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);.

另外,大约一年前我的win7(x86)系统发生了这种情况,当时没有lzw压缩。

为了从滑块制作器中保存文件,它将 lzw 压缩数据发送到我们的服务器,然后解压缩,然后cloudFile.UploadText到文件存储。我们确实检查了前 2 个字符是否为“\0\0”,但我们没有找到任何类似的文本。

4

0 回答 0