我遇到了一个奇怪的情况:每隔一段时间(~100ppm)就会有一个blob成功上传,但之后就不见了。在跟踪过程中,它看起来像是一个磁盘上载确认,磁盘在复制到其他磁盘或位置之前就停止了。
上载代码如下所示:
try
{
await blob.UploadFromStreamAsync(stream);
}
catch
{
await blob.DeleteIfExistsAsync();
throw;
}
if (!await blob.ExistsAsync())
{
throw new Exception($"Blob uploaded but it doesn't exist: {id}");
}
return id;
1.0;2018-09-08T09:03:58.2752537Z;PutBlob;Success;201;77;77;authenticated;myfiles;myfiles;blob;"https://...";"/...";ee57ce43-...;0;x.x.x.x;2018-03-28;678;63407;258;0;63407;
1.0;2018-09-08T09:07:40.2367140Z;CopyBlob;BlobNotFound;404;66;66;authenticated;myfiles;myfiles;blob;"https://...";"/...";87707e72-...;0;x.x.x.x;2018-03-28;581;0;172;215;0;
存储层是冷的。在将blob写入单个磁盘之后,是否可能存在上载确认?
另一个想法是:上传后有没有检查损坏的二进制文件?有没有可能是一些扫描程序(例如从损坏的磁盘上传的照片)取消了这些斑点?