从GitHub repo下载单个文件有哪些技巧?
我不想要显示原始文件的URL;对于二进制文件,什么都没有。
http://support.github.com/discussions/feature-requests/41-download-single-file
是否有可能将GitHub用作“下载服务器”?
如果我们决定切换到GoogleCode,是否提供了上述功能?
或者开源项目是否有免费托管和VCS?
从GitHub repo下载单个文件有哪些技巧?
我不想要显示原始文件的URL;对于二进制文件,什么都没有。
http://support.github.com/discussions/feature-requests/41-download-single-file
是否有可能将GitHub用作“下载服务器”?
如果我们决定切换到GoogleCode,是否提供了上述功能?
或者开源项目是否有免费托管和VCS?
当前回答
I.如果您想下载.so之类的文件而不是源代码,请尝试单击下面的下载按钮:
该文件将从您的浏览器下载。
二、如果您想下载源代码,请单击“原始”,然后转到“原始”。。页
简单地复制/粘贴或使用curl或wget命令在终端中获取它。
其他回答
GitHub发布功能
您应该使用GitHub的发布功能将可下载数据(如编译的二进制文件)与用于生成该数据的源代码的标记版本相关联,而不是链接以下载回购中的特定文件。
https://github.com/blog/1547-release-your-software
我们很高兴宣布发布,这是一个向最终用户发送软件的工作流。发布是具有变更日志和二进制资产的一级对象,它们展示了Git工件之外的完整项目历史。发行版附带发行说明和下载软件或源代码的链接。按照许多Git项目的惯例,发布与Git标签绑定。您可以使用现有标记,或在发布标记时让发布者创建标记。
请使用“{host}/{user}/}repo}/branch}/{file}”的模式。要获得具体示例,请在Python中执行以下操作:
import pandas as pd
host = 'raw.github.com'
user = 'fivethirtyeight'
repo = 'data'
branch = 'master'
file = 'births/US_births_2000-2014_SSA.csv'
url = f'https://{host}/{user}/{repo}/{branch}/{file}'
df = pd.read_csv(url,sep=',',header=0)
df.head()
我最近发现了一个名为gitzip的服务,它也是开源的:
站点-http://kinolien.github.io/gitzip/
回购-https://github.com/KinoLien/gitzip
访问上述站点,输入repo或目录URL,您可以下载单个文件或整个目录作为zip文件。
或者试试这个
const https = require('https');
const fs = require('fs');
const DOMAIN = 'raw.githubusercontent.com';
function writeFile(data, fileName) {
fs.appendFile(fileName, data.toString(), err => {
if (err) {
console.log('error in writing file', err);
}
});
}
function EOF(data) {
console.log('EOF');
}
function getFileName(pathToFile) {
var result = pathToFile.split('/');
var splitLength = result.length;
return result[splitLength - 1];
}
function getFile(branchName, username, repoName, ...pathToFile) {
pathToFile.forEach(item => {
const path = `/${username}/${repoName}/${branchName}/${item}`;
const URL = `${DOMAIN}${path}`;
const options = {
hostname: DOMAIN,
path: path
};
var fileName = getFileName(item);
https
.get(options, function(res) {
console.log(res.statusCode);
/* if file not found */
if (res.statusCode === 404) {
console.log('FILE NOT FOUND');
} else {
/* if file found */
res.on('data', data => writeFile(data, fileName));
res.on('end', data => EOF(data));
}
})
.on('error', function(res) {
console.log('error in reading URL');
});
});
}
getFile('master', 'bansalAyush', 'InstagramClone', '.babelrc', 'README.md');
为了跟进thomasfuchs所说的,但对于GitHub Enterprise用户,您可以使用以下内容。
curl-H'授权:令牌INSERTACCESSTOKENHERE'-H'接受:application/vnd.github.v3.raw'-O-Lhttps://your_domain/api/v3/repos/owner/repo/contents/path
这里还有API文档https://developer.github.com/v3/repos/contents