首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure:如何可靠地从blobstorage下载文件?

Azure:如何可靠地从blobstorage下载文件?
EN

Stack Overflow用户
提问于 2015-06-23 00:45:11
回答 1查看 419关注 0票数 0

我们创建了大量的csv文件,并将它们存储在一个azure blob容器中。创建完所有文件后,应将其下载到vpn中的某个位置。这在大多数情况下都工作得很好,但也可能发生某些文件比预期的要小得多的情况。

这些文件的平均大小约为40 mb,有时文件大小在7到30 mb之间。这是目前为止的代码:

代码语言:javascript
复制
private void DownloadBlobToFile(ICloudBlob blob, string fileName)
{
    _log.Debug("DownloadBlobToFile");
    Contract.Requires<ArgumentNullException>(blob == null, "blob must not be null.");
    Contract.Requires<ArgumentNullException>(string.IsNullOrWhiteSpace(fileName), "fileName must not be null or empty.");

    using (var fileStream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read))
    {
        blob.DownloadToStream(fileStream, null, GetBlobRequestOptions());
        _log.Info(string.Format("File {0} successfully downloaded.", fileStream.Name));
    }
}

private BlobRequestOptions GetBlobRequestOptions()
{
    if (_blobRequestOptions != null)
    {
        return _blobRequestOptions;
    }
    _blobRequestOptions = new BlobRequestOptions
    {
        ServerTimeout = TimeSpan.FromSeconds(60),
        MaximumExecutionTime = TimeSpan.FromSeconds(180),
        RetryPolicy = new ExponentialRetry(TimeSpan.FromSeconds(3), 5)
    };
    return _blobRequestOptions;
}

当文件下载不完整时,根本不会出现错误消息。检查文件是否已成功且完全下载的最佳步骤是什么?

EN

回答 1

Stack Overflow用户

发布于 2015-06-23 00:50:39

不确定您是否可以控制文件的名称,但如果可以,您可以使用文件内容的MD5散列来命名文件。然后,您可以在文件下载时计算该MD5散列,以确保它与文件名匹配。这样你就可以知道你是否拥有所有的内容。您也可以将这些元数据存储在其他地方并与之关联,但关键是使用MD5散列来验证您是否拥有所需的所有内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30985452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档