Скачать отдельные файлы из GitHub
Я думаю, большинство из вас, разработчики, используют любой VCS, и я надеюсь, что некоторые из вас используют Git. У вас есть какой-либо совет или трюк, как получить URL-адрес загрузки для одного файла в репозитории?
Я не хочу URL для отображения raw-файла; в случае двоичных файлов это ни для чего.
http://support.github.com/discussions/feature-requests/41-download-single-file
можно ли вообще использовать GitHub в качестве " скачать сервер"?
Если мы решим перейти на код Google, здесь представлена упомянутая функциональность?
или есть ли бесплатный хостинг и VCS для проектов с открытым кодом?
26 ответов:
Git не поддерживает загрузку частей репозитория. Вы должны скачать все. Но вы должны быть в состоянии сделать это с GitHub.
при просмотре файла он имеет ссылку на" сырую " версию. Элемент URL построена так
https://github.com/user/repository/raw/branch/filenameзаполнив пробелы в URL, вы можете использовать Wget или cURL (С
-Lопция, см. ниже) или что угодно, чтобы загрузить один файл. Опять же, вы не получите ни одного из приятные особенности контроля версий используется Git с этим.обновление: я заметил, что вы упомянули, что это не работает для двоичных файлов. Вероятно, вы не должны использовать двоичные файлы в своем репозитории Git, но GitHub имеет раздел загрузки для каждого репозитория, который вы можете использовать для загрузки файлов. Если вам нужно более одного двоичного файла, вы можете использовать a .сжатый файл. URL-адрес для загрузки загружаемого файла составляет:
https://github.com/downloads/user/repository/filenameобратите внимание, что URL-адреса, приведенные выше, из ссылок на
github.com, будет перенаправлять кraw.githubusercontent.com. Вы не должны напрямую использовать URL-адрес, указанный этим перенаправлением HTTP 302, потому что, per RFC 2616: "поскольку перенаправление может быть изменено время от времени, клиент должен продолжать использовать запрос-URI для будущих запросов."
- перейдите к файлу, который вы хотите скачать.
- щелкните его, чтобы просмотреть содержимое в пользовательском интерфейсе GitHub.
- в правом верхнем углу щелкните правой кнопкой мыши the .
- Сохранить как...
вы можете использовать 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все это должно идти в одну строку. Элемент
-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.rbRails Composer является отличным примером этого.
чтобы следить за тем, что сказал thomasfuchs, но вместо этого для корпоративных пользователей GitHub вот что вы можете использовать.
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.
- Нажмите кнопку исходный, чтобы отобразить файл содержание.
- скопируйте URL-адрес в вашем браузере.
- в командной строке запустить:
wget --no-check-certificate --content-disposition https://URL-from-step3/curl -LJO https://URL-from-step3/
В случае, если вы хотите скачать zip-файл с
githubС помощьюwgetwget -O filename.zip https://github.com/downloads/user/repository/filename.zip?raw=trueпосмотреть этот сайт для более подробной информации
этот метод работает для Windows, так как я никогда не использовал MAC, поэтому я не знаю, какие альтернативные ключи в MAC для ключей, которые я собираюсь упомянуть ниже.
давайте поговорим о файлах CSV. Если вы хотите скачать CSV-файл:
- перейти к конкретному набору данных, который вы хотите скачать и нажмите на него.
- вы увидите кнопку "Raw" в верхней правой части набора данных.
- нажмите "Alt", а затем щелкните левой кнопкой мыши " Raw" кнопка.
- весь CSV будет загружен в вашей системе.
помните, вы должны нажать клавишу Alt и щелкните левой кнопкой мыши одновременно. Просто нажав кнопку "Raw", вы откроете CSV в браузере.
Я надеюсь, что помогает.
вы должны просто сделать это с помощью тега
rawURL вашего файла.например, чтобы загрузить 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 надстройка, которая генерирует вызов curl, включая все механизмы аутентификации (aka cookies).
щелкните правой кнопкой мыши
rawкнопка cliget - > "Копировать url для ссылки", а затем вставить его в оболочку. Вы получите свой файл, даже если вам пришлось войти в систему, чтобы увидеть его.
вместо ссылки для загрузки определенного файла в репо, вы должны использовать GitHub в выпускает возможность связывать загружаемые данные (например, скомпилированные двоичные файлы) с помеченной версией исходного кода, используемого для создания этих данных.
https://github.com/blog/1547-release-your-software
мы рады объявить релизы, рабочий процесс для доставки программного обеспечения для конечных пользователей. Релизы-это первоклассные объекты с журналы изменений и бинарные активы, которые представляют полную историю проекта за пределами артефактов Git.
релизы сопровождаются заметками о выпуске и ссылками для загрузки программного обеспечения или исходного кода.
, в соответствии с соглашениями о многих проектах, ГИТ-релизы привязаны к Git теги. Вы можете использовать существующий тег или разрешить выпускам создавать тег при его публикации.
чтобы загрузить файл из репозитория Github, используйте команду 'curl' со ссылкой на необработанный файл.
curl https://raw.githubusercontent.com/user/repo/filename --output filenameдобавьте параметр --output, за которым следует новое имя файла, чтобы загрузить необработанный файл во вновь созданный файл.
- на правой стороне чуть ниже " Clone in Desktop "он говорит"загрузить Zip-файл"
- Скачать Zip-Файл
- извлечь файл
для пользователей с 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-files-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-файл.
Это то, что сработало для меня только сейчас...
откройте необработанный файл на отдельной вкладке.
скопировать все это в свой блокнот в новый файл.
сохраните файл в расширение, которое он первоначально имел
...работал на .php файл я DL только сейчас.




Comments