- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以创建一个 html 表单,以允许 Web 用户直接将文件上传到 azure blob 存储,而无需使用其他服务器作为中介? S3 和 GAW blobstore 都允许这样做,但我找不到任何对 azure blob 存储的支持。
最佳答案
编辑 2019 年 11 月
现在可以引用官方文档:
初始答案
有一个New Azure Storage JavaScript client library for browsers (Preview) .
(这篇文章中的所有内容均来自上面的原始文章)
We highly recommend use of SAS tokens to authenticate with Azure Storage since the JavaScript Client Library will expose the authentication token to the user in the browser. A SAS token with limited scope and time is highly recommended. In an ideal web application it is expected that the backend application will authenticate users when they log on, and will then provide a SAS token to the client for authorizing access to the Storage account. This removes the need to authenticate using an account key. Check out the Azure Function sample in our Github repository that generates a SAS token upon an HTTP POST request.
代码示例:
在 HTML 代码中插入以下脚本标记。确保 JavaScript 文件位于同一文件夹中。
<script src="azure-storage.common.js"></script/>
<script src="azure-storage.blob.js"></script/>
现在让我们向页面添加一些项目以启动传输。在 BODY 标签内添加以下标签。请注意,单击该按钮时会调用 uploadBlobFromText 方法。我们将在下一步中定义此方法。
<input type="text" id="text" name="text" value="Hello World!" />
<button id="upload-button" onclick="uploadBlobFromText()">Upload</button>
到目前为止,我们已经包含了客户端库并添加了 HTML 代码来向用户显示文本输入和启动传输的按钮。当用户单击上传按钮时,uploadBlobFromText 将被调用。现在让我们定义一下:
<script>
function uploadBlobFromText() {
// your account and SAS information
var sasKey ="....";
var blobUri = "http://<accountname>.blob.core.windows.net";
var blobService = AzureStorage.createBlobServiceWithSas(blobUri, sasKey).withFilter(new AzureStorage.ExponentialRetryPolicyFilter());
var text = document.getElementById('text');
var btn = document.getElementById("upload-button");
blobService.createBlockBlobFromText('mycontainer', 'myblob', text.value, function(error, result, response){
if (error) {
alert('Upload filed, open browser console for more detailed info.');
console.log(error);
} else {
alert('Upload successfully!');
}
});
}
</script>
关于azure - 直接从浏览器将文件上传到 Azure Blob 存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15670649/
我是一名优秀的程序员,十分优秀!