gpt4 book ai didi

asp-classic - 如何使用经典 ASP 将文件上传到 Azure Blob 存储?

转载 作者:行者123 更新时间:2023-12-03 01:58:09 25 4
gpt4 key购买 nike

我正在尝试使用经典 ASP 将文件上传到 Azure Blob 存储(别无选择!)。然而,尽管我可以使用 MSXML2.ServerXMLHTTP 列出容器内容,但我无法创建 blob。我需要使用它来上传 PDF 文件,因此我使用 BlockBlob。

我相信我未能正确创建授权 key 。有谁有在经典 ASP VBScript 中创建授权 key 的代码示例吗?我有类似下面的内容,但不知道如何在经典 ASP 中生成 key 。

' replace with your account's settings
' setup the URL
baseUrl = "https://<myaccount>.blob.core.windows.net"

Set http = Server.CreateObject("MSXML2.ServerXMLHTTP")
PathUrl = baseUrl & "/test/myblob"
' setup the request and authorization
http.open "PUT", PathUrl , false
'How do I generate this key from the headers and path using HMAC-SHA256 and my prim/sec account key
http.setRequestHeader "Authorization", "SharedKey <myaccount>:?????"
http.setRequestHeader "Date", "2011-6-16 9:22"
http.setRequestHeader "x-ms-date", "2011-06-16 9:22"
http.setRequestHeader "x-ms-version", "2009-09-19"
http.setRequestHeader "Content-Length", "11"
http.setRequestHeader "x-ms-blob-type","BlockBlob"
http.setRequestHeader "Content-Type", "text/plain; charset=UTF-8"

postData = "hello world"

' send the POST data
http.send postData

' optionally write out the response if you need to check if it worked
Response.Write http.responseText

我收到错误 AuthenticationFailedServer 无法验证请求。确保授权 header 的值格式正确,包括签名。

谢谢

格雷姆

最佳答案

您必须实现此处定义的算法的等效项:

http://msdn.microsoft.com/en-us/library/dd179428.aspx

但是,如果可能的话,我推荐一种更简单的方法。我会让您的 ASP 应用程序对 .NET 应用程序进行 ASMX(或 WCF 等效调用),该应用程序返回生命周期较短(例如 10 分钟到期)的共享访问签名 (SAS)。只需传递您要上传的 PDF 的名称,然后让它为您计算具有写入权限的签名。一旦你有了签名,你就可以简单地对它进行 PUT 操作,而不必担心计算任何东西。如果 PDF 非常大(> 64MB),您将遇到需要担心分成 block 的问题,但对于较小的 PDF,您可以在 SAS 上执行非常简单的 PUT 操作,而不必担心。

此代码很简单:

var blobName = "foo.pdf"; //taken from ASP app

var blob = container.GetBlobReference(blobName);

var sas = blob.GetSharedAccessSignature(new SharedAccessPolicy()
{
Permissions = SharedAccessPermissions.Write,
SharedAccessExpiryTime = DateTime.AddMinutes(10)
});

本例中的容器是您希望用户上传的位置。 “sas”变量将包含您需要发送的查询字符串部分。您只需附加它(例如 blob.Uri.AbsoluteUri + sas)。

使用此解决方案,您的 ASP 应用程序将不了解 Windows Azure blob 存储和详细信息,只有您的 .NET 应用程序需要知道 key 或如何计算 SAS。

关于asp-classic - 如何使用经典 ASP 将文件上传到 Azure Blob 存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6370149/

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