gpt4 book ai didi

使用 SAS 的 Azure 上传 blob,对吗?

转载 作者:行者123 更新时间:2023-12-03 06:02:36 24 4
gpt4 key购买 nike

只是想问一个简单的问题。

我希望用户直接将 blob 上传到 blob 存储。这是我想出的:

public ActionResult Upload(HttpPostedFileBase file)

CloudBlobContainer blobContainerSas = new CloudBlobContainer(new Uri(blobSasUri));
CloudBlockBlob blob = blobContainerSas.GetBlockBlobReference(BLOBNAMEHERE);
blob.UploadFromStream(file.InputStream);

在这段代码之前,我设置了 blobSasUrl(我忽略了该部分)。

我想知道是否 blob.UploadFromStream(file.InputStream);是正确的?我现在直接上传吗?

我使用 SAS URI 来上传 blob(不是容器)。这可能吗?该 blob 甚至还没有上传...我应该使用 SAS URI 作为容器吗?//困惑

谢谢!

最佳答案

不,在上面的示例中,您的用户没有直接上传存储帐户中的文件。他们通过调用 Upload 操作将文件从浏览器上传到您的网络服务器,该操作又将数据上传到存储中。

要通过客户端浏览器直接将数据上传到存储中,您需要使用 CORSAJAX 等概念。首先,您需要在存储帐户上启用 CORS。这是一项一次性操作,您需要执行此操作,以便浏览器可以直接与您的存储进行交互。

设置 CORS 设置时,您可以从以下 CORS 设置开始:

允许的域:您的网站地址(您也可以指定 *,这意味着所有网站都可以访问您的存储空间。如果您真的刚开始,但一旦掌握了概念,可能会推荐使用,您应该始终指定非常具体的网站地址)

允许的方法:PUT、POST(这表示您将在 JavaScript AJAX 调用中使用的 HTTP 动词)

允许的 header :*(*表示允许浏览器发送的所有 header 。您应该坚持这一点,因为不同的浏览器往往会发送不同的 header ,这使得调试变得非常困难)

公开 header :*(*表示所有 header 将由存储服务发送到浏览器)

最大年龄(秒):3600

启用 CORS 后,您可以编写一个应用程序,让您的用户使用 JavaScript/AJAX 直接上传存储帐户中的文件。

您可能想阅读这篇有关了解 Azure 中的 CORS 概念的博客文章:http://msdn.microsoft.com/library/azure/dn535601.aspx .

我还写了一篇关于 Azure 和 CORS 的博客文章,其中我演示了使用 JavaScript/AJAX 从浏览器上传文件,您可以在此处阅读:http://gauravmantri.com/2013/12/01/windows-azure-storage-and-cors-lets-have-some-fun/

对于配置 CORS 规则,您可能会发现我公司开发的这个免费实用程序很有用:http://blog.cynapta.com/2013/12/cynapta-azure-cors-helper-free-tool-to-manage-cors-rules-for-windows-azure-blob-storage/

关于使用 SAS 的 Azure 上传 blob,对吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23837585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com