本文整理汇总了C#中ICloudBlob.GetSharedAccessSignature方法的典型用法代码示例。如果您正苦于以下问题:C# ICloudBlob.GetSharedAccessSignature方法的具体用法?C# ICloudBlob.GetSharedAccessSignature怎么用?C# ICloudBlob.GetSharedAccessSignature使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICloudBlob
的用法示例。
在下文中一共展示了ICloudBlob.GetSharedAccessSignature方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetDownloadUrlFor
/// <summary>
/// Return a secret, persistent Download Url for a given Blob
/// </summary>
static string GetDownloadUrlFor(ICloudBlob blob)
{
var signature = blob.GetSharedAccessSignature(new SharedAccessBlobPolicy
{
SharedAccessExpiryTime = new DateTime(2050, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)
}, DownloadPolicyName);
return string.Format("{0}{1}", blob.Uri.ToString().Replace(" ", "%20"), signature);
}
示例2: GetSasUrl
public static string GetSasUrl(ICloudBlob blob, SharedAccessBlobPermissions permissions)
{
var policy = new SharedAccessBlobPolicy
{
SharedAccessExpiryTime = DateTime.Now.AddMinutes(30),
Permissions = permissions
};
string sasBlobToken = blob.GetSharedAccessSignature(policy);
//Return the URI string for the container, including the SAS token.
return blob.Uri + sasBlobToken;
}
示例3: TestBlobSAS
private static void TestBlobSAS(ICloudBlob testBlob, SharedAccessBlobPermissions permissions, SharedAccessBlobHeaders headers, string sasVersion)
{
UploadText(testBlob, "blob", Encoding.UTF8);
SharedAccessBlobPolicy policy = new SharedAccessBlobPolicy()
{
SharedAccessStartTime = DateTimeOffset.UtcNow.AddMinutes(-5),
SharedAccessExpiryTime = DateTimeOffset.UtcNow.AddMinutes(30),
Permissions = permissions,
};
string sasToken = testBlob.GetSharedAccessSignature(policy, headers, null, sasVersion);
TestAccess(sasToken, permissions, headers, null, testBlob);
}
示例4: TestBlobSASAsync
private static async Task TestBlobSASAsync(ICloudBlob testBlob, SharedAccessBlobPermissions permissions, SharedAccessBlobHeaders headers)
{
await UploadTextAsync(testBlob, "blob", Encoding.UTF8);
SharedAccessBlobPolicy policy = new SharedAccessBlobPolicy()
{
SharedAccessStartTime = DateTimeOffset.UtcNow.AddMinutes(-5),
SharedAccessExpiryTime = DateTimeOffset.UtcNow.AddMinutes(30),
Permissions = permissions,
};
string sasToken = testBlob.GetSharedAccessSignature(policy, headers);
await TestAccessAsync(sasToken, permissions, headers, null, testBlob);
}
示例5: CopyBlob
/// <summary>
/// Copies the specified blob into the specified container.
/// </summary>
/// <param name="sourceBlob">The source container.</param>
/// <param name="destinationContainer">The destination container.</param>
private static void CopyBlob(ICloudBlob sourceBlob, CloudBlobContainer destinationContainer)
{
var signature = sourceBlob.GetSharedAccessSignature(new SharedAccessBlobPolicy
{
Permissions = SharedAccessBlobPermissions.Read,
SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24)
});
ICloudBlob destinationBlob = destinationContainer.GetBlockBlobReference(sourceBlob.Name);
if (destinationBlob.Exists())
{
Console.WriteLine(string.Format("Destination blob '{0}' already exists. Skipping.", destinationBlob.Uri));
}
else
{
// Display the size of the source blob.
Console.WriteLine(sourceBlob.Properties.Length);
Console.WriteLine(string.Format("Copy blob '{0}' to '{1}'", sourceBlob.Uri, destinationBlob.Uri));
destinationBlob.StartCopyFromBlob(new Uri(sourceBlob.Uri.AbsoluteUri + signature));
while (true)
{
// The StartCopyFromBlob is an async operation,
// so we want to check if the copy operation is completed before proceeding.
// To do that, we call FetchAttributes on the blob and check the CopyStatus.
destinationBlob.FetchAttributes();
if (destinationBlob.CopyState.Status != CopyStatus.Pending)
{
break;
}
//It's still not completed. So wait for some time.
System.Threading.Thread.Sleep(1000);
}
// Display the size of the destination blob.
Console.WriteLine(destinationBlob.Properties.Length);
}
}
示例6: CopyBlob
/// <summary>
/// Copies the specified blob into the specified container.
/// </summary>
/// <param name="sourceBlob">The source container.</param>
/// <param name="destinationContainer">The destination container.</param>
private static void CopyBlob(ICloudBlob sourceBlob, CloudBlobContainer destinationContainer)
{
var signature = sourceBlob.GetSharedAccessSignature(new SharedAccessBlobPolicy
{
Permissions = SharedAccessBlobPermissions.Read,
SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24)
});
ICloudBlob destinationBlob = destinationContainer.GetBlockBlobReference(sourceBlob.Name);
if (destinationBlob.Exists())
{
Console.WriteLine(string.Format("Destination blob '{0}' already exists. Skipping.", destinationBlob.Uri));
}
else
{
try
{
Console.WriteLine(string.Format("Copy blob '{0}' to '{1}'", sourceBlob.Uri, destinationBlob.Uri));
destinationBlob.StartCopyFromBlob(new Uri(sourceBlob.Uri.AbsoluteUri + signature));
}
catch (Exception ex)
{
Console.WriteLine(string.Format("Error copying blob '{0}': {1}", sourceBlob.Name, ex.Message));
}
}
}