Tag: azure storage

Windows Universal App – 从Azure容器下载所有Blob

我有一个通用Windows应用程序。 我试图在应用程序启动时从azure容器中下载所有blob。 这是我的代码: public MainPage() { this.InitializeComponent(); downloadblobs(); } public async void downloadblobs() { CloudStorageAccount storageaccount = new CloudStorageAccount(new StorageCredentials(“accountname”, “accountkey”), true); CloudBlobClient blobClient = storageaccount.CreateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference(“ContainerName”); //——————— int fileName = 1; var client = storageaccount.CreateCloudBlobClient(); BlobContinuationToken continuationToken = null; string prefix = null; bool useFlatBlobListing = true; BlobListingDetails blobListingDetails = BlobListingDetails.All; […]

Windows azure REST API列出容器问题

我正在尝试在我的windows azure存储帐户中列出容器。 但我有一个例外 “远程服务器返回错误:(403)服务器无法validation请求。请确保正确形成Authorization标头的值,包括签名..” 但是我按照给出的说明包含了签名,是否有人在我的代码中发现任何错误? private static String SignThis(string StringToSign,string Key,string Account) { String signature = string.Empty; byte[] unicodeKey = Convert.FromBase64String(Key); using (HMACSHA256 hmacSha256 = new HMACSHA256(unicodeKey)) { Byte[] dataToHmac = System.Text.Encoding.UTF8.GetBytes(StringToSign); signature = Convert.ToBase64String(hmacSha256.ComputeHash(dataToHmac)); } String authorizationHeader = String.Format( System.Globalization.CultureInfo.InvariantCulture, “{0} {1}:{2}”, “SharedKey”, Account, signature); return authorizationHeader; } static void ListContainers() { Thread.CurrentThread.CurrentCulture = […]

Azure rest api put blob

我试图用Azure rest api放一个blob。 我成功地提出了“GET”请求,但我遇到了“PUT”请求的问题。 当我尝试发出“PUT”请求时,我得到404错误(我在stackoverflow中看过相同的post,但它没有帮助我)。我不确定我使用的MessageSignature是否正确(我已经尝试过MessageSignaturePut但没有工作)。 有什么建议? public void UploadBlobWithRestAPI(string uri, DateTime now) { string blobName = “test.txt”; string method = “PUT”; string sampleContent = “This is sample text.”; int contentLength = Encoding.UTF8.GetByteCount(sampleContent); string queryString = (new Uri(uri)).Query; string blobContainerUri = uri.Substring(0, uri.Length – queryString.Length); string requestUri = string.Format(CultureInfo.InvariantCulture, “{0}/{1}{2}”, blobContainerUri, blobName, queryString); HttpWebRequest request = […]

Azure – 删除ADLS文件时出现ADlsError / WebHDFS错误

我正在使用C#进行ADLS身份validation,并希望执行一些文件操作,如删除,重命名。 使用以下代码进行身份validation和删除操作 var context = new AuthenticationContext(“https://login.windows.net/” + tenantId); ClientCredential clientCredential = new ClientCredential(appId, secretKey); var tokenResponse = context.AcquireTokenAsync(“https://management.azure.com/”, clientCredential).Result; var accessToken = tokenResponse.AccessToken; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Add(“Authorization”, “Bearer ” + accessToken); client.BaseAddress = new Uri(“https://management.azure.com/”); } ServiceClientCredentials creds = new TokenCredentials(tokenResponse.AccessToken);// tokenResponse.IdToken, tokenResponse.AccessTokenType); DataLakeStoreFileSystemManagementClient _adlsFileSystemClient = new DataLakeStoreFileSystemManagementClient(creds); _adlsFileSystemClient.FileSystem.Delete(_adlsAccountName, FilenameWPath); […]

如何跟踪异步文件上传到azure存储的进度

有没有办法跟踪文件上传进度到Azure存储容器? 我正在尝试使用C#创建一个用于将数据上传到azure的控制台应用程序。 我的coode现在看起来像: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Auth; using Microsoft.WindowsAzure.Storage.Blob; using System.Configuration; using System.IO; using System.Threading; namespace AdoAzure { class Program { static void Main(string[] args) { CloudStorageAccount storageAccount = CloudStorageAccount.Parse( ConfigurationManager.ConnectionStrings[“StorageConnectionString”].ConnectionString); CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference(“adokontajnerneki”); container.CreateIfNotExists(); CloudBlobClient myBlobClient = storageAccount.CreateCloudBlobClient(); CloudBlockBlob myBlob = […]

如何从Azure Blob存储下载文件到浏览器

我已经成功列出了可用文件,但我需要知道如何将该文件传递给浏览器以供用户下载而无需将其保存到服务器 以下是我获取文件列表的方法 var azureConnectionString = CloudConfigurationManager.GetSetting(“AzureBackupStorageConnectString”); var containerName = ConfigurationManager.AppSettings[“FmAzureBackupStorageContainer”]; if (azureConnectionString == null || containerName == null) return null; CloudStorageAccount backupStorageAccount = CloudStorageAccount.Parse(azureConnectionString); var backupBlobClient = backupStorageAccount.CreateCloudBlobClient(); var container = backupBlobClient.GetContainerReference(containerName); var blobs = container.ListBlobs(useFlatBlobListing: true); var downloads = blobs.Select(blob => blob.Uri.Segments.Last()).ToList();