2

我正在尝试更新其他人多年前编写的命令行实用程序,以便它可以在当前版本的 Azure SDK 上编译。突破性的变化让我很痛苦,尤其是在ListBlobs()CloudBlobContainer 的方法上。

他构造BlobRequestOptions如下:

BlobRequestOptions options = new BlobRequestOptions
{
    UseFlatBlobListing = true,
    BlobListingDetails = BlobListingDetails.Snapshots,
    AccessCondition = AccessCondition.IfNotModifiedSince(fetchParams.EndDate),
    RetryPolicy = RetryPolicies.Retry(10, RetryPolicies.DefaultClientBackoff),
    DeleteSnapshotsOption = DeleteSnapshotsOption.None
};

显然UseFlatBlobListingBlobListingDetails现在只是参数ListBlobs()。而且我认为我现在不必担心DeleteSnapshotsOption

但是我看不到如何指定上述AccessCondition内容,这是一个关键参数。

另外,我不知道以前是做什么的,而且我在新东西RetryPolicies.DefaultClientBackoff中也没有看到类似的名字。RetryPolicy

有人对此有什么建议吗?

4

1 回答 1

4

即使使用较旧的库,AccessCondition列出 blob 时也会忽略参数。正如您可能已经知道的那样,AccessCondition它提供了一种执行条件操作的机制(例如,仅当它从昨天起没有被修改时才删除 blob 等)并且仅适用于某些操作。有关仅在满足某些条件时才能执行的操作列表,请参见此处:http: //msdn.microsoft.com/en-us/library/windowsazure/dd179371.aspx。因此,就列出 blob 而言,我想说不要担心访问条件,因为它不适用于此特定操作。

重试策略,顾名思义,允许您指示存储客户端库在发生 atransient error时重试操作。在 2.0 版中,重试策略已移至单独的命名空间:Microsoft.WindowsAzure.Storage.RetryPolicies.

我写了一些关于将代码从旧存储客户端库迁移到 2.0 版的博客文章。我认为这两个帖子在您的问题背景下可能对您有用:

存储客户端库 2.0 – 迁移 Blob 存储代码: http: //gauravmantri.com/2012/11/28/storage-client-library-2-0-migrating-blob-storage-code/

存储客户端库 2.0 – 实施重试策略: http: //gauravmantri.com/2012/12/30/storage-client-library-2-0-implementing-retry-policies/

于 2013-10-02T04:00:11.803 回答