【问题标题】:Azure Storage Explorer fails to upload files (stuck at Uploading Group)Azure 存储资源管理器无法上传文件(卡在上传组)
【发布时间】:2018-09-24 20:59:47
【问题描述】:

我尝试使用 Microsoft Azure 存储资源管理器在 blob 容器中上传文件,但它卡在状态:

上传群组...

什么也没有发生(没有消息,没有错误)。

【问题讨论】:

  • 这应该转移给超级用户,因为它与编程无关。
  • @Murmel 我认为这个工具与编程有关,因为它是开发人员的工具,而不是高级用户的工具。

标签: azure-storage azure-blob-storage


【解决方案1】:

在找到更好的解决方案之前,我找到了解决方法:使用以前的版本! (0.8.16)

你可以在那里下载:Download Azure Storage Explorer 0.8.16 (Preview)

这似乎是 v0.9 的回归。 ISSUE - Storage Explorer

【讨论】:

    【解决方案2】:

    上传到 Azure Blob 有两种不同的方式,同步上传和异步上传。

    同步上传:

    ICloudBlob 方法“UploadFromFile”没有任何用于文件上传的内置 CANCEL 机制。

    语法:

    public virtual void UploadFromFile(string path, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null);
    

    异步上传:

    “ICloudBlob”的“UploadFromFileAsync”方法有四个被覆盖的方法,其中三个有一个在等待完成时取消任务的选项。 UploadFromFileAsync 返回一个代表异步操作的 Task 对象。

    语法:

    public virtual System.Threading.Tasks.Task UploadFromFileAsync (string path, System.Threading.CancellationToken cancellationToken);
    
    
    Example :
    
    String filePath =@”c:\abc.txt”;
    CancellationTokenSource source = new CancellationTokenSource();
    CancellationToken token = source.Token;
    source.Cancel();
    UploadFromFileAsync(filePath, token);
    

    1] CancellationToken 传播应取消操作的通知。

    2] 实例化一个 CancellationTokenSource 对象,该对象生成一个取消令牌,可以将其分配给 CancellationToken 以发出 CANCEL 活动的信号。

    3] 然后我们可以将 CancellationToken 传递给 UploadFromFileAsync 方法。如果在 CancellationTokenSource 上调用了“CANCEL”,则 UploadFromFileAsync 对象依次抛出 TaskCanceledException 异常,应该停止上传。

    备选方案: 我们可以在一个线程中实现 UPLOAD 功能。在用户单击取消时,只需中止/终止该线程。但它并不能保证文件上传是否被取消,这只是有助于及时关闭应用程序,它不会卡在状态。

    【讨论】:

      猜你喜欢
      • 2017-12-02
      • 1970-01-01
      • 1970-01-01
      • 2018-10-08
      • 1970-01-01
      • 2020-08-18
      • 2016-02-22
      • 1970-01-01
      • 2021-09-24
      相关资源
      最近更新 更多