直接上传CDN的实现方法
将文件直接上传到内容分发网络(CDN)可以显著提升资源的加载速度和用户体验,本文将详细探讨如何使用阿里云OSS+CDN进行文件上传和部署,并结合VSCode插件实现一键上传功能。
准备工作
1、服务器准备:申请域名并绑定,确保域名已备案。
2、开启CDN服务:在阿里云控制台添加域名,选择全站加速,源站信息填写服务器IP。
3、配置CNAME解析:在域名管理-解析设置内,加入CDN配置的CNAME解析。
4、开启OSS服务:创建Bucket,读写权限设为公共读。
使用VSCode插件实现一键上传
1. 自定义右键菜单
在package.json
文件中配置自定义命令,添加如下代码:
"contributes": { "commands": [ { "command": "extension.du.upload", "title": "上传文件到CDN" } ], "menus": { "editor/context": [ { "when": "editorFocus", "command": "extension.du.upload", "group": "navigation" } ] } }
2. 唤起弹窗选择文件
通过监听自定义命令,调用vscode.window.showOpenDialog
唤起文件选择弹窗。
vscode.commands.registerCommand('extension.du.upload', () => { vscode.window.showOpenDialog({ canSelectFiles: true }).then(files => { if (files) { uploadToCDN(files); } }); });
3. 上传文件到CDN
使用node环境的依赖包进行文件上传,生成文件名采用md5命名法。
const axios = require('axios');
const FormData = require('form-data');
const crypto = require('crypto');
async function uploadToCDN(files) {
for (const file of files) {
const form = new FormData();
form.append('file', fs.createReadStream(file));
const md5sum = crypto.createHash('md5').update(fs.readFileSync(file)).digest('hex');
const response = await axios.post(CDN_UPLOAD_URL, form, { headers: form.getHeaders() });
if (response.status === 200) {
const url =${CDN_BASE_URL}/${md5sum}
;
insertUrlToEditor(url);
} else {
console.error('Upload failed');
}
}
}
function insertUrlToEditor(url) {
const editor = vscode.window.activeTextEditor;
if (!editor || !editor.selection || !editor.selection.active) {
return;
}
const position = editor.selection.active;
editor.edit((editBuilder) => {
editBuilder.insert(position, url);
});
}
文件预览功能
获取鼠标悬浮位置,提取文本中的URL,调用弹框显示内容。
vscode.workspace.onDidChangeTextEditorSelection((event) => { const editor = event.document; const selection = editor.selection; const text = editor.document.getText(selection); if (text.startsWith('http://') || text.startsWith('https://')) { vscode.window.showInformationMessage(text); } });
常见问题及解决方案
1、问题一:如何确保上传的文件是最新的?
解答:可以通过在每次上传前删除旧文件或者使用版本控制系统(如Git)来管理文件版本,确保每次上传的都是最新文件。
2、问题二:如何测试CDN是否生效?
解答:可以通过访问CDN提供的URL来检查资源是否被缓存,并且可以使用浏览器的开发者工具查看网络请求,确认资源是从CDN加载的,还可以使用Ping命令检查域名解析是否正确指向CDN节点。
通过上述步骤,可以实现文件的快速上传到CDN,并利用VSCode插件提高开发效率,希望这些方法和技巧能帮助您更好地管理和优化资源加载。
以上内容就是解答有关直接上传cdn的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/66124.html