是否有方法通过URL将文件上传到Azure存储帐户?

f87krz0w  于 2023-05-18  发布在  其他
关注(0)|答案(2)|浏览(111)

我有一个API,允许用户上传和下载文件到我的Azure存储容器。对于下载文件,我在HTML脚本中有一个简单的函数,它使用用户输入信息(SAS令牌等)创建一个URL,用户可以在其中下载文件。
但是,对于文件上传,我有一个完整的单独Azure函数创建Blob客户端和容器客户端,以将数据上传到Azure存储容器。我想知道是否有一种更简单的方法可以使用URL将文件上传到Azure Storage容器,只需最少的代码类似于Azure Storage容器文件下载的工作方式。

lymnna71

lymnna711#

如果我理解正确的话,您是在问是否可以使用http调用而不是SDK创建容器和/或上传blob。如果是这种情况,您可以利用REST API。
对于下面的示例,我使用SAS令牌进行身份验证,
对于create a container,你可以像这样使用PUT:

PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&sv=2021-10-04&ss=btqf&srt=sco&st=2023-05-12T06%3A48%3A03Z&se=2023-05-13T06%3A48%3A03Z&sp=rwl&sig=I8EPwY4xhBWSbQKbPbasyXWnjwD%2BJTg8jHExZi9%2BU0w%3D

要将upload a blob转换为容器,也可以使用PUT

PUT https://myaccount.blob.core.windows.net/mycontainer/myblob.txt?sv=2021-10-04&ss=btqf&srt=sco&st=2023-05-12T06%3A48%3A03Z&se=2023-05-13T06%3A48%3A03Z&sp=rwl&sig=I8EPwY4xhBWSbQKbPbasyXWnjwD%2BJTg8jHExZi9%2BU0w%3D
x-ms-blob-type: BlockBlob  

HELLO WORLD

(Note:我在visual studio中使用了一个.http文件来创建示例,请参阅这篇博客文章。所以上面的代码可以放在一个扩展名为.http的文件中进行测试)

gcuhipw9

gcuhipw92#

我想知道是否有一种更简单的方法可以使用URL将文件上传到Azure存储容器
AFAIK,你需要容器和blob客户端来上传文件。或者,您可以在Azure PowerShell函数中使用以下命令,这些命令不需要客户端。
您可以将以下命令集成到不使用客户端的Azure PowerShell函数中:

$SASURL="https://rithwik.blob.core.windows.net/rithwik?sp==https&svV6V3dI0KJRxDY%2FtXh5jj8m%2BL8YpYU%3D"
$u = [System.Uri] $SASURL

$s = "rithwik"
$con = "rithwik"
$sas = $u.Query
$Context = New-AzStorageContext -StorageAccountName $s -SasToken $sas
Set-AzStorageBlobContent -File "C:\Users\Downloads\76210027.html" -Container $con -Context $Context

文件上传如下:

如果你想使用。NET、Python SDK或Java,你需要有块服务的客户端或一些Azure存储包。

相关问题