标签: azure-storage-blobs

将Cache-Control和Expires标头添加到Azure存储Blob

我正在使用Azure存储来提供静态文件blob,但我希望在提供服务时为文件/ blob添加Cache-Control和Expires标头以降低带宽成本.

CloudXplorer和Cerebrata的Cloud Storage Studio这样的应用程序提供了在容器和blob上设置元数据属性的选项,但在尝试添加Cache-Control时会感到不安.

有人知道是否可以为文件设置这些标头?

c# cache-control azure azure-storage-blobs

34
推荐指数
3
解决办法
2万
查看次数

获取容器中Azure blob文件的名称列表?

我需要列出Azure Blob文件名的名称.目前我能够列出所有带URL的文件,但我只需要列出名称.我想避免解析名称.能否请您查看我的以下代码和指南:

CloudStorageAccount backupStorageAccount = CloudStorageAccount.Parse(blobConectionString);

var backupBlobClient = backupStorageAccount.CreateCloudBlobClient();
var backupContainer = backupBlobClient.GetContainerReference(container);

var list = backupContainer.ListBlobs();
Run Code Online (Sandbox Code Playgroud)

.net c# azure azure-storage-blobs

33
推荐指数
8
解决办法
5万
查看次数

在MVC3中下载Azure Blob文件

我们的ASP.NET MVC 3应用程序在Azure上运行,并使用Blob作为文件存储.我找到了上传部分.

视图将具有文件名,单击该文件名时将提示文件下载屏幕出现.

谁能告诉我怎么做呢?

asp.net-mvc azure azure-storage azure-storage-blobs asp.net-mvc-3

32
推荐指数
3
解决办法
2万
查看次数

无法访问Windows Azure Blob存储文档,"404资源未找到"响应

我正在尝试执行PUT请求来创建新的BLOB.在使用Authorization标头出现一些初期问题之后,当我尝试将文件放入容器时,我现在收到404 Resource Not Found错误.

我确信我的网址是正确的:

https://accountNameHere.blob.core.windows.net/containerNameHere

我检查并重新检查以确保我包含容器名称和帐户名称,并且它们都是正确的.

还有什么可能导致这种情况(除了我做错的明显可能性)?

编辑添加:

以下是原始请求标头:

PUT /testss HTTP/1.1
Host: accountName.blob.core.windows.net
Accept: */*
Connection: Keep-Alive
0: content-encoding
1: content-language
2: content-length
3: content-md5
4: content-type
5: date
6: if-modified-since
7: if-match
8: if-none-match
9: if-unmodified-since
10: range
x-ms-blob-type: BlockBlob
x-ms-version: 2011-08-18
x-ms-date: Fri, 09 Aug 2013 04:17:59 GMT
Content-Length: 126377
Authorization: SharedKey accountName:MBVLmoxzxZr+tf8EZw2GkbFLEHuNn8FNAaEHrcty/cM=
Expect: 100-continue
Run Code Online (Sandbox Code Playgroud)

这是我发送的符号字符串:

PUT x-ms-blob-type:BlockBlob x-ms-date:Fri, 09 Aug 2013 04:03:20 GMT x-ms-version:2011-08-18 /accountName/test
Run Code Online (Sandbox Code Playgroud)

这是他们的期望:

PUT 126377 x-ms-blob-type:BlockBlob x-ms-date:Fri, 09 Aug 2013 04:02:17 GMT …
Run Code Online (Sandbox Code Playgroud)

rest azure azure-storage azure-storage-blobs

30
推荐指数
4
解决办法
2万
查看次数

Azure存储:上载的文件大小为零字节

当我将图像文件上传到blob时,图像上传显然成功(没有错误).当我去云存储工作室时,文件就在那里,但是大小为0(零)字节.

以下是我使用的代码:

// These two methods belong to the ContentService class used to upload
// files in the storage.
public void SetContent(HttpPostedFileBase file, string filename, bool overwrite)
{
    CloudBlobContainer blobContainer = GetContainer();
    var blob = blobContainer.GetBlobReference(filename);

    if (file != null)
    {
        blob.Properties.ContentType = file.ContentType;
        blob.UploadFromStream(file.InputStream);
    }
    else
    {
        blob.Properties.ContentType = "application/octet-stream";
        blob.UploadByteArray(new byte[1]);
    }
}

public string UploadFile(HttpPostedFileBase file, string uploadPath)
{
    if (file.ContentLength == 0)
    {
        return null;
    }

    string filename;
    int indexBar = file.FileName.LastIndexOf('\\');
    if (indexBar > -1) …
Run Code Online (Sandbox Code Playgroud)

file-upload azure azure-storage-blobs

28
推荐指数
2
解决办法
7161
查看次数

如何清理Azure存储Blob容器?

我只想清理(dump,zap,del .)Azure Blob容器.我怎样才能做到这一点?

注意:容器由IIS(运行Webrole)日志(wad-iis-logfiles)使用.

azure azure-storage-blobs blobstore

28
推荐指数
5
解决办法
2万
查看次数

Azure存储入门:Blobs vs Tables vs SQL Azure

这是一个相当大的话题,blobs vs tables vs SQL,尽管我到目前为止所阅读的内容还是找不到适当的推理.

我们有一个多租户SaaS Web应用程序,我们即将迁移到Azure.我们使用SQL Server 2008数据库.我们存储属于文档的文档和日志信息.有点像Dropbox.

论坛声明,在考虑"大型"对象时,最好使用Azure表.我们通常每个用户存储数百个文档,文档大小从5kb到30mb不等,绝大多数都在1MB左右?

什么时候去Blob,Tables,Sql有什么基本规则?我已经知道我不应该将文档存储在SQL中,因为它太贵了.但是什么时候将文件存储在Blob中变得"有益",何时我会更好地使用表格?是否有某种公式如:

if (objects * MB/object * objectrequested > y) then blobs, else tables

azure azure-storage-blobs azure-table-storage azure-sql-database

28
推荐指数
2
解决办法
2万
查看次数

如何从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();
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc azure azure-storage azure-storage-blobs

27
推荐指数
3
解决办法
3万
查看次数

如何在Windows Azure存储上查询Cloud Blob

我使用Microsoft.WindowsAzure.StorageClient来操作Azure存储上的blob.我已经到了用户需要列出上传文件并修改/删除它们的地步.由于一个容器中有许多文件,因此查询azure存储服务以仅返回所需文件的最佳方法是什么.此外,我希望能够只返回特定数量的blob,以便我可以实现分页.

CloudBlobContainer中有一个名为ListBlobs的方法,但它似乎正在返回容器中的所有blob.这对我不起作用.

我在这个主题上搜索了很多,找不到任何有用的东西.此链接仅显示基础知识.

---------编辑

我在下面的回答并不是懒惰地检索blob,而是检索容器中的所有blob,然后过滤结果.目前还没有解决方案懒惰地检索blob.

.net linq lazy-loading azure-storage-blobs azure-sdk-.net

26
推荐指数
2
解决办法
2万
查看次数

Azure,存储和部署静态内容的最佳方式(例如images/css)?

我们即将将.NET Web应用程序部署到Azure Web角色.我只是想知道其他人如何处理他们的静态内容,特别是图像和CSS?目前我们的应用程序包大约是25mb,但其中18mb是纯粹来自图像,导航按钮,图标和模板组件等很少得到更新的东西.将其从部署包中分区并将其移动到blob存储是否明智?

我对这种方法有些怀疑,我想知道它是有效的......

  1. 我们80%的网站都在HTTPS环境中运行.访问blob商店中的图像会引入跨脚本问题吗?

  2. 如果有人试图恶意锤击我们的图像(大多数低于20kb),那么漏金钱的漏洞呢?

  3. 我很难看到如何使用目录命名约定将文件上传到blob容器(来自VS2010 + Azure SDK),所以我不需要重写1000个路径引用?我很欣赏目录是blob容器中的抽象概念,但是我可以使用正斜杠编写文件以在代码中模仿它.显然,在我上传Visual Studio之前,Windows不允许我这样做.

任何想法或替代策略都会受到欢迎.目标实际上是缩小我们的部署包以加快部署时间.此外,我非常喜欢将图像服务卸载到专用节点以提高Web服务器性能的想法,也许我的图像集很小,几乎不值得打扰?

5月16日更新----------------------------------------------- -------------------------

这是我最后做的事情:

1.将所有图像+ css传输到blob存储容器.我维护了images和css文件夹中任何子目录的结构.

2.在我们的web.config文件中应用URL重写规则,如下所示.

  <rewrite>
    <rules>
      <rule name="imagestoazure">
      <match url="images/(.*)" />
      <action type="Redirect" url="https://xxxxx.vo.msecnd.net/images/{R:1}" />
    </rule>
  </rules>
  </rewrite>
Run Code Online (Sandbox Code Playgroud)

3.从应用程序中排除图像+ css文件夹并进行部署.

我的部署现在要小得多,而且图像正在运行CDN,从而节省了带宽,提高了下载速度并释放了网络服务器的一些负载.

更新:2015年9月

最近审查时,我遇到了Microsoft的以下指南.它详细介绍了如何使用查询字符串自动部署资产和缓存区域.

从Web应用程序中的Azure CDN提供内容

image azure static-content azure-storage-blobs azure-cdn

26
推荐指数
1
解决办法
2万
查看次数