写个jsdelivr上传Github文件代码
时间: 2024-01-21 21:40:06 浏览: 26
以下是一个示例代码,可以将文件上传到GitHub并使用jsDelivr提供的CDN服务:
```javascript
const axios = require('axios');
const FormData = require('form-data');
const owner = '<GITHUB_USERNAME>';
const repo = '<GITHUB_REPO>';
const branch = '<BRANCH_NAME>';
const accessToken = '<GITHUB_ACCESS_TOKEN>';
const filename = '<FILE_NAME>';
const fileContent = '<FILE_CONTENT>';
const apiUrl = `https://api.github.com/repos/${owner}/${repo}/git/trees/${branch}`;
const headers = {
'Authorization': `Bearer ${accessToken}`,
'User-Agent': 'MyApp'
};
// Create a new blob with file content
const blobData = new Blob([fileContent], { type: 'text/plain' });
const formData = new FormData();
formData.append('file', blobData, filename);
// Upload file to GitHub using API
axios.post(apiUrl, {
path: filename,
mode: '100644',
content: fileContent,
}, { headers })
.then(response => {
const sha = response.data.sha;
const uploadUrl = `https://uploads.github.com/repos/${owner}/${repo}/git/blobs/${sha}`;
return axios.post(uploadUrl, formData, {
headers: {
...headers,
...formData.getHeaders()
}
});
})
.then(response => {
const fileUrl = `https://cdn.jsdelivr.net/gh/${owner}/${repo}@${branch}/${filename}`;
console.log(`File uploaded to GitHub and available at: ${fileUrl}`);
})
.catch(error => {
console.error(error.message);
});
```
请注意,您需要替换示例代码中的以下变量:
- `<GITHUB_USERNAME>`: 您的GitHub用户名
- `<GITHUB_REPO>`: 存储文件的GitHub仓库名称
- `<BRANCH_NAME>`: 存储文件的GitHub仓库分支名称
- `<GITHUB_ACCESS_TOKEN>`: 您的GitHub访问令牌
- `<FILE_NAME>`: 要上传的文件的名称
- `<FILE_CONTENT>`: 要上传的文件的内容
此代码使用axios库来处理GitHub API请求,并使用FormData类将文件上传到GitHub。然后,它将使用jsDelivr提供的CDN服务来访问上传的文件。