gpt4 book ai didi

http - Azure blob 文件下载链接

转载 作者:可可西里 更新时间:2023-11-01 16:18:26 26 4
gpt4 key购买 nike

我有一个 blob,已存储在 Azure blob 存储中(使用开发模拟器)。

一切都已保存,我可以在 blob 存储区的服务器资源管理器中看到它(file.mp3,如果重要的话)。

然后我在我的网站中链接到它,但是当我单击该链接时,我收到了 206(部分内容)(显然没有文件)。如果我右键单击“保存”,一切都很顺利并且文件会下载。

enter image description here

我确信这是我错过的一些非常菜鸟的东西,但我看不到它。

最佳答案

这是因为,浏览器不会下载整个媒体文件,浏览器请求 Blob 存储正确响应一个字节和 header 的范围。这称为 HTTP 流式传输,其中部分文件将按范围下载并逐步播放。在这种形式的流式传输中,您可以跳过文件的某些部分并转到末尾播放媒体的结尾部分,而无需下载整个文件。

假设您正在观看一部大电影,该电影有 100 MB。如果您想观看最后一分钟,您可以将播放器的跟踪器在时间轴上向前移动,浏览器将仅根据媒体文件中的时间轴结构下载最后几兆字节。通常 MP4 和类似的媒体容器支持文件字节位置跟踪。

如果可能,浏览器和大多数媒体播放器都会尝试流式传输媒体文件。

您可以尝试以下下载属性,引用:http://updates.html5rocks.com/2011/08/Downloading-resources-in-HTML5-a-download

<a href="http://www.google.com/.../logo2w.png" download="MyGoogleLogo">download me</a>

您可以尝试以下代码,来自此答案,引用:Chrome extension: How to save a file on disk

var url = window.webkitURL || window.URL || window.mozURL || window.msURL;
var a = document.createElement('a');
a.download = 'MyHangouts-MomentCapture.jpg';
a.href = url.createObjectURL(dataURIToBlob(data.active, 'jpg'));
a.textContent = 'Click here to download!';
a.dataset.downloadurl = ['jpg', a.download, a.href].join(':');


/**
* Converts the Data Image URI to a Blob.
*
* @param {string} dataURI base64 data image URI.
* @param {string} mimetype the image mimetype.
*/
var dataURIToBlob = function(dataURI, mimetype) {
var BASE64_MARKER = ';base64,';
var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;
var base64 = dataURI.substring(base64Index);
var raw = window.atob(base64);
var rawLength = raw.length;
var uInt8Array = new Uint8Array(rawLength);

for (var i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i);
}

var bb = new this.BlobBuilder();
bb.append(uInt8Array.buffer);
return bb.getBlob(mimetype);
};

关于http - Azure blob 文件下载链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18605910/

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