在现代网络环境中,CDN(内容分发网络)被广泛应用于加速内容的传输和访问,有时用户可能希望直接从源站下载资源,避开CDN,以下是几种避开CDN的方法:
方法一:通过后端请求获取源站地址
1、向后端请求源站地址:通过AJAX或Fetch API向服务器发送请求,获取资源的原始下载地址。
2、处理二进制流:将获取到的数据转换为二进制流,然后创建一个下载链接。
xhr.open('GET', url, true); if (options.responseType) { xhr.responseType = options.responseType; }
3、生成下载链接:将二进制流转换为一个Blob对象,并创建一个临时的URL,将该URL赋值给<a>
标签的href属性,并自动触发下载。
const downloadAjax = (url) => {
const innerurl = url; // 文件地址
const name = url.replace(/(.*/)*([^.]+).*/ig, '$2');
let filename =${name}.${innerurl.replace(/(.*.)/, '')}
;
return new Promise((resolve) => {
ajax(innerurl, (xhr) => {
const p = { xhr, filename };
const a = document.createElement('a');
const blob = new Blob([xhr.response], { type: 'application/octet-stream' });
const urls = window.URL.createObjectURL(blob);
a.href = urls;
a.download = filename;
a.click();
window.URL.revokeObjectURL(urls);
});
});
};
方法二:使用HTML5的download属性
1、添加download属性:在HTML中的<a>
标签上添加download属性,使浏览器解析为下载而不是打开。
<a href="https://example.com/file.zip" download="file.zip">点击下载</a>
2、处理跨域问题:如果遇到跨域问题,可以使用代理服务器或者CORS来解决,通过设置代理服务器来绕过跨域限制:
// 方式一 location.href = 'http://1.2.3.4/2342/2342.jpg'; // 方式二 window.open('http://1.2.3.4/123/2345.png');
方法三:利用JavaScript创建临时链接
1、创建临时链接:利用JavaScript动态创建一个带有下载属性的<a>
标签,并自动触发点击事件。
function downloadByURL(url, fileName) { fetch(url, { method: 'GET', responseType: 'blob' }) .then((response) => { const blob = new Blob([response.data], { type: 'application/octet-stream' }); const link = document.createElement('a'); link.href = window.URL.createObjectURL(blob); link.download = fileName; link.click(); window.URL.revokeObjectURL(link.href); }) .catch((error) => console.error(error)); }
方法四:使用CDN控制台配置域名
1、配置域名:在CDN控制台中接入域名,确保域名符合要求,确保域名长度不超过81个字符,且已经在工信部进行过备案。
2、启用CDN下载:在OBS控制台上配置用户域名绑定和CDN加速,启用CDN下载功能。
登录OBS Browser -> 选中待操作的桶 -> 单击“更多>配置CDN下载” -> 勾选“启用CDN下载” -> 单击“确定”
相关问答FAQs
1、如何通过代理服务器解决跨域问题?
可以通过在前端代码中设置代理服务器来解决跨域问题,具体方法是将请求的URL替换为代理服务器的地址,让代理服务器去请求源站的资源并返回给客户端,这样可以避免直接请求源站时遇到的跨域限制,将location.href = 'http://1.2.3.4/2342/2342.jpg'
替换为实际的源站地址。
2、如何确保CDN下载的安全性?
确保CDN下载的安全性需要采取多种措施,确保CDN服务提供商的安全性和可靠性,选择有良好声誉和安全记录的CDN服务商,对CDN上的资源进行加密传输,使用HTTPS协议来保护数据的安全,定期检查和更新CDN配置文件,确保没有安全漏洞,监控CDN的流量和使用情况,及时发现和应对异常活动。
各位小伙伴们,我刚刚为大家分享了有关下载链接如何避开cdn的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/81158.html