当前位置: 首页 > 面试题库 >

如何在Portal的Azure BLOB存储中设置CORS?

蒋俊
2023-03-14
问题内容

我们在Windows Azure上有一个Blob存储。

http://mytest.blob.core.windows.net/forms

我使用CloudBerry将一些文件上传到存储。而且我可以通过浏览器成功下载文件。这些文件是简单的文本文件,但是具有不同的文件扩展名。例如,

http://mytest.blob.core.windows.net/forms/f001.etx

我想通过jquery($ .get)下载文件,但是由于CORS失败。

如何在Portal的Azure BLOB存储中配置CORS?

而且,我也应该在客户端为CORS做些事情吗?


问题答案:

更新:
在回答此问题时,Azure门户没有此功能。现在按此处概述进行操作。下面概述了添加UI之前执行此操作的方法

如何在Portal的Azure BLOB存储中配置CORS?

如果愿意,可以始终以编程方式设置BORS存储的CORS规则。如果您使用的是.Net Storage
Client库,请从存储团队中查看此博客文章:http :
//blogs.msdn.com/b/windowsazurestorage/archive/2014/02/03/windows-azure-
storage-introducing-
cors.aspx。用于从该博客文章中设置CORS设置的代码:

private static void InitializeCors()
{
     // CORS should be enabled once at service startup
     // Given a BlobClient, download the current Service Properties 
     ServiceProperties blobServiceProperties = BlobClient.GetServiceProperties();
     ServiceProperties tableServiceProperties = TableClient.GetServiceProperties();

     // Enable and Configure CORS
     ConfigureCors(blobServiceProperties);
     ConfigureCors(tableServiceProperties);

     // Commit the CORS changes into the Service Properties
     BlobClient.SetServiceProperties(blobServiceProperties);
     TableClient.SetServiceProperties(tableServiceProperties);
}

private static void ConfigureCors(ServiceProperties serviceProperties)
{
    serviceProperties.Cors = new CorsProperties();
    serviceProperties.Cors.CorsRules.Add(new CorsRule()
    {
        AllowedHeaders = new List<string>() { "*" },
        AllowedMethods = CorsHttpMethods.Put | CorsHttpMethods.Get | CorsHttpMethods.Head | CorsHttpMethods.Post,
        AllowedOrigins = new List<string>() { "*" },
        ExposedHeaders = new List<string>() { "*" },
        MaxAgeInSeconds = 1800 // 30 minutes
     });
}

如果您正在寻找执行此操作的工具,则一些存储浏览器支持配置CORS-Azure存储资源管理器,Cerebrata Azure ManagementStudio,Cloud Portam(公开-我正在构建Cloud Portam实用程序)。

正确配置CORS之后,您可以使用Rory的答案中提到的代码从blob存储中下载文件。正如Rory所说,您不必在客户端做任何特殊的事情。



 类似资料:
  • 我需要使用session来保留用户的选择。(如果用户选择的日期范围在数据刷新时返回到默认值)。 这是我的daterangepicker代码。请帮助我如何设置“开始”日期和“结束”日期的会话存储,以及如何从会话存储中检索它们。提前道谢。

  • 我正在开发自己的网站,它支持多主题,例如 我试图通过为本地存储添加键和值来解决这个问题,我看到了很多关于它的教程,但没有进展。 HTML代码 > 头

  • 又不想工作,我不知道是怎么回事。 日志包含以下消息: 将项目放在github https://github.com/romanych2021/testjpaspring上

  • 问题内容: 我一直在开发一些Node应用程序,并且一直在寻找一种存储与部署相关的设置的良好模式。在Django世界(我来自哪里)中,通常的做法是创建一个包含标准设置(时区等)的文件,然后包含一个用于部署特定设置的文件。与哪个数据库进行通信,什么Memcache套接字,管理员的电子邮件地址等等。 我一直在寻找Node的类似模式。只需一个配置文件就可以了,因此它不必与中的其他所有文件一起使用,但是我发

  • 从文件共享复制到blob存储时,是否有方法设置目标blob的层?AzCopy在后台使用Azure Storage Data Movation Library for.NET,它具有--block-blob-tier选项。所以,我想这可能是有可能实现的使用库。