Tag: azure storage blobs

从Windows Phone将图像上载到Azure blob存储。 没有创造

我使用Windows Azure在我的Windows Phone应用程序中存储图像。 相机拍摄照片,然后上传所选的照片流。 但它没有错误,但没有上传? var blobContainer = CloudStorageContext.Current.Resolver.CreateCloudBlobClient(); var container = blobContainer.GetContainerReference(“pics”); var blob = container.GetBlobReference(“picture.jpg”); blob.UploadFromStream(e.ChosenPhoto, response => { MessageBox.Show(blob.Uri.ToString()) }); 我不知道发生了什么。 解析器包含正确的用户,密钥和URL。 容器“pics”确实存在,但没有上传图像。 弹出的消息框中包含一个不存在的URL。 更新 – 这里似乎有一个类似的(几乎完全相同的)问题 – 在WP7中将照片流从相机上传到azure blob 。 但是大写容器名称在这里不是问题,所以解决方案没有解决这个问题

CloudBlockBlob.DownloadToStream与DownloadRangeToStream

尝试使用ASP.NET azure SDK从blob存储中下载图像。 我在另一篇文章中读到,DownloadToStream确实将blob打破成小块并并行下载它们以提高性能。 我相信这就是DownloadRangeToStream的用途。 我无法找到任何关于DownloadToStream的文档或代码确认,并且持怀疑态度,因为它具有与blob url直接下载相同的运行时(每次下载.5-3s)。 这是我的下载方法的代码,给出了相同的性能。 使用CloudBlockBlob.DownloadToStream: private Bitmap DownloadFromBlob(String set) { CloudStorageAccount storageAccount = CloudStorageAccount.Parse( CloudConfigurationManager.GetSetting(“StorageConnectionString”)); CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference(“templates”); CloudBlockBlob blockBlob = container.GetBlockBlobReference(set + “.png”); using (var memoryStream = new MemoryStream()) { blockBlob.DownloadToStream(memoryStream); return (memoryStream == null) ? null : (Bitmap)Image.FromStream(memoryStream); } } 使用Image.FromStream: private Bitmap DownloadImageFromUrl(string […]

从Azure Blob存储下载文件

我有一个应用程序,允许用户上传照片,这些照片存储在Azure Blob存储中。 用户还可以查看这些照片。 要查看它们,我们希望应用程序将图像下载到默认下载位置。 目前,上传工作完美。 但是我为Azure API找到的下载function似乎没有做任何事情。 此外,我无法真正指定下载位置,因为此function需要在台式机/笔记本电脑以及具有不同默认目录的移动设备上运行。 这似乎应该很简单,但我找不到任何可以帮助我的东西。 以下是我的代码示例: CloudBlobContainer container = blobClient.GetContainerReference(“photos”); CloudBlob blob = container.GetBlobReference(photo.BlobUrl); //copy blob from cloud to local gallery blob.DownloadToFile(photo.ImageName); blob.DownloadToFile(photo.ImageName); 导致服务器请求但没有任何反应,也就是没有下载文件。

将多个文件上载到Azure Blob存储

对Windows Azure来说很新鲜。 我已经按照本教程: 教程 。 它完美地工作但是一个限制是,对于我想到的应用程序,需要能够相对快速地上传多个文件。 是否可以修改教程以支持多文件上传,例如,用户可以使用shift-click选择多个文件。 或者,如果有人知道任何好的教程详细说明上述内容? 任何帮助表示赞赏, 谢谢

以编程方式创建blob存储容器

我有一个要求,在创建公司时,我的storageaccount中创建了一个关联的blob存储容器,容器名称设置为传入的字符串变量。我尝试了以下操作: public void AddCompanyStorage(string subDomain) { //get the storage account. CloudStorageAccount storageAccount = CloudStorageAccount.Parse( System.Configuration.ConfigurationManager.AppSettings[“StorageConnectionString”].ToString()); //blob client now CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); //the container for this is companystyles CloudBlobContainer container = new CloudBlobContainer(“https://mystore.blob.core.windows.net/” + subDomain); } 然而,这并没有像我预期的那样创建容器,我是否以错误的方式进行此操作? 这可能吗? 干杯

为什么上传到Azure blob这么慢?

我有一个自定义流,用于直接在页面云blob中执行写入操作。 public sealed class WindowsAzureCloudPageBlobStream : Stream { // 4 MB is the top most limit for page blob write operations public const int MaxPageWriteCapacity = 4 * 1024 * 1024; // Every operation on a page blob has to manipulate a value which is rounded up to 512 bytes private const int PageBlobPageAdjustmentSize = […]

批量上载大量图像到Azure Blob存储

我有大约110,000张各种格式的图像(jpg,png和gif)和大小(2-40KB)本地存储在我的硬盘上。 我需要将它们上传到Azure Blob存储。 在执行此操作时,我需要设置一些元数据和blob的ContentType,否则它是直接批量上传。 我目前正在使用以下内容来处理一次上传一个图像(并行超过5-10个并发任务)。 static void UploadPhoto(Image pic, string filename, ImageFormat format) { //convert image to bytes using(MemoryStream ms = new MemoryStream()) { pic.Save(ms, format); ms.Position = 0; //create the blob, set metadata and properties var blob = container.GetBlobReference(filename); blob.Metadata[“Filename”] = filename; blob.Properties.ContentType = MimeHandler.GetContentType(Path.GetExtension(filename)); //upload! blob.UploadFromStream(ms); blob.SetMetadata(); blob.SetProperties(); } } 我想知道是否还有其他技术可以用来处理上传,以尽可能快地完成。 此特定项目涉及将大量数据从一个系统导入另一个系统,并且出于客户原因,它需要尽快发生。

从Azure blob存储中读取文件

我想从azure存储中读取一个PDF文件字节,因为我有一个文件路径。 https://hostedPath/pdf/1001_12_Jun_2012_18_39_05_594.pdf 那么可以通过直接传递其路径名来从blob存储中读取内容吗? 我也在使用c#。

使用共享访问密钥上载到Azure Blob存储

UPD:这是我实现的这个问题的解决方案 我正在尝试通过Azure.Storage库(不是REST API)上传到Azure blob存储,并通过共享访问密钥进行身份validation。 我已经看过这篇博文 ,但是自post以来API已经发生了变化,现在我无法得到相同的结果。 这是我有的: var blobClient = new CloudBlobClient(new Uri(blobWithSas.BaseUri), new StorageCredentials(blobWithSas.Sas)); // here I receive 404 error var blob = blobClient.GetBlobReferenceFromServer(new Uri(blobWithSas.AbsoluteUri)); using (var stream = new FileStream(fullFilePath, FileMode.Open)) { blob.UploadFromStream(stream); } 有: blobWithSas.BaseUri = http://127.0.0.1:10000/devstoreaccount1/a6dc9274-6ce1-4095-be6b-e84d1012cb24是容器的名称,已存在,在其他地方创建。) blobWithSas.Sas = ?sv=2012-02-12&se=2013-06-23T03%3A04%3A53Z&sr=b&sp=w&sig=NaMqgXRMXDFvLAp8LTskgplAKp%2B9LCZzq8WK9Zo35x8%3D (也在代码中的其他地方发布) blobWithSas.AbsoluteUri = http://127.0.0.1:10000/devstoreaccount1/a6dc9274-6ce1-4095-be6b-e84d1012cb24/foldername/filename.txt blob不存在,我想上传新文件并创建一个blob。 我有“服务器”应用程序持有Azure存储帐户的访问密钥。 服务器将向客户端发出SAS,客户端将文件直接上载到Azure。 所以SAS只会写,没有阅读,客户端会创建服务器告诉他们的文件(容器,文件夹名称) GetBlobReferenceFromServer出现问题 – 我从Azure存储中收到404错误。 是的,blob不存在且没有引用。 […]

从Azure Blob获取最新文件

假设我每天在blob存储中生成几个json文件。 我想要做的是在我的任何目录中修改最新的文件。 所以我的blob中有这样的东西: 2016/01/02/test.json 2016/01/02/test2.json 2016/02/03/test.json 我想得到2016/02/03/test.json 。 因此,一种方法是获取文件的完整路径并进行正则表达式检查以查找创建的最新目录,但如果我在每个目录中有多个josn文件,则这不起作用。 是否有类似File.GetLastWriteTime来获取最新的修改文件? 我正在使用这些代码获取所有文件btw: public static CloudBlobContainer GetBlobContainer(string accountName, string accountKey, string containerName) { CloudStorageAccount storageAccount = new CloudStorageAccount(new StorageCredentials(accountName, accountKey), true); // blob client CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); // container CloudBlobContainer blobContainer = blobClient.GetContainerReference(containerName); return blobContainer; } public static IEnumerable GetBlobItems(CloudBlobContainer container) { IEnumerable items = container.ListBlobs(useFlatBlobListing: […]