Скачать отдельные файлы из GitHub
Я думаю, большинство из вас, разработчики, используют любой VCS, и я надеюсь, что некоторые из вас используют Git. У вас есть совет или хитрость, как получить URL-адрес загрузки одного файла в репозитории?
Мне не нужен URL для отображения raw-файла; в случае двоичных файлов это ни для чего.
http://support.github.com/discussions/feature-requests/41-download-single-file
возможно ли использовать GitHub в качестве " загрузки сервер"?
Если мы решим перейти на код Google, здесь представлена упомянутая функциональность?
или есть ли бесплатный хостинг и VCS для проектов с открытым кодом?
26 ответов
Git не поддерживает загрузку частей репозитория. Вы должны скачать все. Но вы должны быть в состоянии сделать это с GitHub.
при просмотре файла он имеет ссылку на "сырую" версию. The URL-адресом построена так
https://github.com/user/repository/raw/branch/filename
заполнив пробелы в URL-адресе, вы можете использовать команды wget или скручиваемость (С -L
опция, см. ниже) или что угодно, чтобы загрузить один файл. Опять же, вы не получите ничего из хорошие функции управления версиями, используемые Git, делая это.
Update: я заметил, что вы упомянули, что это не работает для двоичных файлов. Вероятно, вам не следует использовать двоичные файлы в репозитории Git, но GitHub имеет раздел загрузки для каждого репозитория, который вы можете использовать для загрузки файлов. Если вам нужно более одного двоичного файла, вы можете использовать a .сжатый файл. URL для загрузки загруженного файла:
https://github.com/downloads/user/repository/filename
обратите внимание, что URL-адреса, приведенные выше, из ссылок на github.com
, будет перенаправлять к raw.githubusercontent.com
. Вы не должны напрямую использовать URL, заданный этим перенаправлением HTTP 302, потому что per RFC 2616: "поскольку перенаправление может быть изменено время от времени, клиент должен продолжать использовать Request-URI для будущих запросов."
- перейдите к файлу, который вы хотите скачать.
- щелкните его, чтобы просмотреть содержимое в пользовательском интерфейсе GitHub.
- в правом верхнем углу щелкните правой кнопкой мыши на .
- Сохранить как...
вы можете использовать API V3 для получения raw-файла (вам понадобится токен OAuth):
curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://api.github.com/repos/owner/repo/contents/path
все это должно идти по одной линии. The -O
опция сохраняет файл в текущем каталоге. Вы можете использовать -o filename
, чтобы указать другое имя файла.
чтобы получить токен OAuth, следуйте инструкциям здесь: https://help.github.com/articles/creating-an-access-token-for-command-line-use
Я написал это как суть также: https://gist.github.com/madrobby/9476733
GitHub Mate делает загрузку одного файла без усилий, просто нажмите значок для загрузки, в настоящее время он работает только на Chrome.
теперь это возможно в GitHub для любого файла. Вам нужно перевести ваши файлы для raw.github.com - ... Например, если ваш файл находится в вашем репозитории по адресу:
https://github.com/<username>/<repo>/some_directory/file.rb
используя wget, вы можете захватить raw-файл из:
https://raw.github.com/<username>/<repo>/<branch>/some_directory/file.rb
Rails Composer является отличным примером этого.
чтобы следить за тем, что сказал thomasfuchs, но вместо этого для пользователей GitHub Enterprise вот что вы можете использовать.
curl -H 'Authorization: token INSERTACCESSTOKENHERE' -H 'Accept: application/vnd.github.v3.raw' -O -L https://your_domain/api/v3/repos/owner/repo/contents/path
также Вот документация API https://developer.github.com/v3/repos/contents
по данным в этом суть, вы можете использовать wget или cURL:
- щелкните имя файла в репозитории GitHub.
- нажмите Raw для отображения файла содержание.
- скопируйте URL-адрес в браузере.
- в командной строке запустить:
wget --no-check-certificate --content-disposition https://URL-from-step3/
curl -LJO https://URL-from-step3/
В случае, если вы хотите скачать zip-файл с github
С помощью wget
wget -O filename.zip https://github.com/downloads/user/repository/filename.zip?raw=true
посмотреть этот сайт для более подробной информации
этот метод работает для Windows, поскольку я никогда не использовал MAC, поэтому я не знаю, какие альтернативные ключи в MAC для ключей, которые я собираюсь упомянуть ниже.
давайте поговорим о CSV-файлах. Если вы хотите загрузить файл CSV:
- перейти к конкретному набору данных, который вы хотите скачать и нажмите на него.
- вы увидите кнопку "Raw" в верхней правой части набора данных.
- нажмите "Alt", а затем щелкните левой кнопкой мыши " Raw" кнопка.
- весь CSV будет загружен в вашей системе.
Remeber, вы должны нажать Alt и щелкните левой кнопкой мыши одновременно. Просто нажав кнопку "Raw", вы откроете CSV в браузере.
надеюсь, это поможет.
вы должны просто сделать это с помощью тега raw
URL вашего файла.
например, чтобы загрузить README AFNetworking:
curl https://raw.githubusercontent.com/AFNetworking/AFNetworking/master/README.md > ADREADME.md
поскольку это публичное РЕПО, вам не нужны никакие учетные данные.
Пожалуйста, обратите внимание на вид ссылки: raw.githubusercontent.com/path/to/file
можно использовать curl
таким образом:
curl -OL https://raw.githubusercontent.com/<username>/<repo-name>/<branch-name>/path/to/file
O
означает, что curl загружает содержимоеL
означает, что curl следует за перенаправлением
страница, которую вы связали с ответами на первый вопрос.
GitHub также имеет средство загрузки для таких вещей, как выпуски.
Код Google нет Git на всех.
GitHub, код Google и SourceForge, только для начала бесплатный хостинг. SourceForge все еще может сделать CVS.
Это определенно работает. По крайней мере в Chrome. Щелкните правой кнопкой мыши на значке "Raw" ->Сохранить Ссылку Как.
недавно я нашел службу под названием gitzip
и открытым исходным кодом:
сайт - http://kinolien.github.io/gitzip/
РЕПО -https://github.com/KinoLien/gitzip
Вист выше сайта, введите РЕПО или URL-адрес каталога, вы можете скачать отдельные файлы или весь каталог в виде zip-файла.
Если вы используете curl и firefox... вы можете использовать cliget add-on, который генерирует вызов curl, включая все механизмы аутентификации (aka cookies).
щелкните правой кнопкой мыши raw
кнопка cliget - > "Копировать url для ссылки", а затем вставьте это в оболочку. Вы получите свой файл, даже если вам пришлось войти в систему, чтобы увидеть его.
вместо ссылки для загрузки определенного файла в репо, вы должны использовать выпускает функция для связывания загружаемых данных (например, скомпилированных двоичных файлов) с помеченной версией исходного кода, используемого для генерации этих данных.
https://github.com/blog/1547-release-your-software
мы рады объявить о выпусках, рабочий процесс для доставки программного обеспечения конечным пользователям. Выпуски-это первоклассные объекты с журналы изменений и бинарные активы, которые представляют полную историю проекта за пределами артефактов Git.
релизы сопровождаются примечаниями к выпуску и ссылками для загрузки программного обеспечения или исходного кода.
следуя соглашениям многих проектов Git, выпуски привязаны к тегам Git. Можно использовать существующий тег или разрешить выпускам создавать тег при его публикации.
чтобы загрузить файл из репозитория Github, используйте команду "curl" со ссылкой на raw-файл.
curl https://raw.githubusercontent.com/user/repo/filename --output filename
добавьте параметр --output, а затем новое имя файла для загрузки необработанного файла во вновь созданный файл.
для пользователей с GitHub Enterprise вам нужно построить URL в следующей схеме
Invoke-WebRequest http://github.mycompany.com/api/v3/repos/my-org/my-repo/contents/myfiles/file.txt -Headers @{"Authorization"="token 8d795936d2c1b2806587719b9b6456bd16549ad8"}
подробности можно найти здесь
http://artisticcheese.blogspot.com/2017/04/how-to-download-individual-files-from.html
или попробуйте это
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');
я использовал следующий формат, и я чувствую, что важно сообщить о пути.
https://github.com/user/repository/raw/branch/filename
^^^ ^ вышесказанное не очень полно в моем уме
https://github.com/<user>/<repoROOTname>/blob/master/<path>/<filename>?raw=true
некоторые сказали raw.github.com или raw вместо blob, но 2-я линия работает для меня, и я надеюсь, поможет другим...
2¢
вы можете попробовать GitHub-файлы-fetcher, это инструмент командной строки, который загружает одну папку или файл из GitHub РЕПО.
подумайте о реальном сценарии: вы посещали следующую страницу веб-страницы и хотите загрузить подкаталог.
https://github.com/reduxjs/redux/tree/master/examples
извините, что не разрешено публиковать изображения.
С github-files-fetcher
, вы следует сначала скопировать url
этой страницы, которая https://github.com/reduxjs/redux/tree/master/examples/async, а затем выполните команду ниже в командной строке:
fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async
теперь можно загрузить любой файл или любую конкретную папку в репозитории, используя это расширение google chrome:
GitZip для github: ссылка : https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn
использование :
- на любой странице публичных репозиториев GitHub.
- просто дважды щелкните по элементам, которые вам нужны.
- Нажмите кнопку Скачать кнопка внизу-справа.
- см. панель мониторинга прогресса и дождитесь загрузки триггера браузера.
- получить ZIP-файл.
Это то, что сработало для меня только что...
откройте файл raw на отдельной вкладке.
скопируйте все это в свой блокнот в новом файле.
сохраните файл в расширении, которое он первоначально имел
...работал на него .php-файл I DL только что.