Загрузите одиночные файлы из GitHub
Я думаю, что большинство из вас, разработчиков, используют VCS, и я надеюсь, что некоторые из вас используют Git. У вас есть какой-либо совет или трюк, как получить URL-адрес загрузки для одного файла в репозитории?
Мне не нужен URL для отображения необработанного файла; в случае двоичных файлов это ни для чего.
http://support.github.com/discussions/feature-requests/41-download-single-file
Можно ли использовать GitHub как "сервер загрузки"?
Если мы решили переключиться на Google Code, это упомянутая функциональность представлена здесь?
Или есть бесплатный хостинг и VCS для проектов с открытым исходным кодом?
Ответы
Ответ 1
Git не поддерживает загрузку частей репозитория. Вы должны загрузить все это. Но вы должны быть в состоянии сделать это с GitHub.
При просмотре файла у него есть ссылка на "сырую" версию. URL построен так
https://raw.githubusercontent.com/user/repository/branch/filename
Заполнив пробелы в URL, вы можете использовать Wget или cURL (с параметром -L
, см. ниже) или что угодно, чтобы загрузить один файл. Опять же, вы не получите ни одной из замечательных функций контроля версий, используемых Git, делая это.
Обновление: я заметил, что вы упоминаете, что это не работает для двоичных файлов. Вы, вероятно, не должны использовать двоичные файлы в своем репозитории Git, но GitHub имеет раздел загрузки для каждого репозитория, который вы можете использовать для загрузки файлов. Если вам нужно более одного двоичного файла, вы можете использовать файл .zip.
URL-адрес для загрузки загруженного файла:
https://github.com/downloads/user/repository/filename
Обратите внимание, что приведенные выше URL-адреса из ссылок на github.com
будут перенаправлены на raw.githubusercontent.com
. Вам не следует напрямую использовать URL-адрес, указанный в этом перенаправлении HTTP 302, поскольку в RFC 2616: "Поскольку перенаправление может иногда изменяться, клиент ДОЛЖЕН продолжать использовать Request-URI для будущих запросов".
Ответ 2
- Перейдите в файл, который хотите загрузить.
- Щелкните по нему, чтобы просмотреть содержимое в интерфейсе GitHub.
- В правом верхнем углу щелкните правой кнопкой мыши кнопку
Raw
.
- Сохранить как...
Ответ 3
Вы можете использовать API V3 для получения необработанного файла (вам нужен токен 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
Ответ 4
Согласно этой сущности, вы можете использовать wget или cURL:
- Нажмите на имя файла в репозитории GitHub.
- Нажмите Raw, чтобы отобразить файл
содержание.
- Скопируйте URL в свой браузер.
В командной строке выполните одно из следующих действий:
wget --no-check-certificate --content-disposition https://URL-from-step3/
curl -LJO https://URL-from-step3/
Еще один:
в RHEL7.6 выполните следующее:
wget https://URL-from-step3/ --output-document=FILE_NAME
Ответ 5
Перейдите к DownGit - введите свой URL-адрес - Загрузить!
Специально подходит для БОЛЬШИХ ФАЙЛОВ
![Download with DownGit]()
Вы можете загружать отдельные файлы и каталоги в виде zip. Вы также можете создать ссылку для загрузки и даже указать имя в zip файле. Подробное использование - здесь.
Ответ 6
GitHub Mate упрощает загрузку одного файла, просто щелкните значок для загрузки, в настоящее время он работает только в Chrome.
![GitHub Mate Download]()
Ответ 7
Теперь это возможно в GitHub для любого файла. Вам необходимо перевести ваши файлы для raw.github.com. Например, если ваш файл находится в вашем репозитории по адресу:
https://github.com/<username>/<repo>/some_directory/file.rb
С помощью wget вы можете захватить необработанный файл:
https://raw.github.com/<username>/<repo>/<branch>/some_directory/file.rb
Rails Composer - отличный пример.
Ответ 8
Чтобы следить за тем, что сказал 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
Ответ 9
Вы можете использовать curl
таким образом:
curl -OL https://raw.githubusercontent.com/<username>/<repo-name>/<branch-name>/path/to/file
O
означает, что завиток загружает контент
L
означает, что завиток следует за перенаправлением
Ответ 10
Если вы хотите загрузить zip файл из github
с помощью wget
wget -O filename.zip https://github.com/downloads/user/repository/filename.zip?raw=true
см. этот сайт для получения более подробной информации
Ответ 11
Вы должны просто сделать это с raw
URL вашего файла.
Например, чтобы загрузить README из AFNetworking:
curl https://raw.githubusercontent.com/AFNetworking/AFNetworking/master/README.md > ADREADME.md
Поскольку это публичное репо, вам не нужны никакие учетные данные.
Обратите внимание на тип URL: raw.githubusercontent.com/path/to/file
Ответ 12
Этот метод работает для Windows, поскольку я никогда не использовал MAC, поэтому я не знаю, какие альтернативные ключи в MAC для ключей, о которых я расскажу ниже.
Расскажите о файлах CSV. Если вы хотите загрузить файл CSV:
- Перейдите к этому конкретному набору данных, который вы хотите загрузить, и нажмите на него.
- Вы увидите кнопку "Raw" в верхней правой части набора данных.
- Нажмите "Alt", а затем щелкните левой кнопкой мыши по кнопке "Raw" .
- Весь CSV будет загружен в вашей системе.
Помните, вы должны нажать Alt и щелкнуть левой кнопкой мыши одновременно. Просто нажав кнопку "Raw" , вы откроете CSV в браузере.
Я надеюсь, что это поможет.
Ответ 13
Существует расширение Chrome под названием Enhanced Github
Он добавит кнопку загрузки прямо справа от каждого файла.
![enter image description here]()
Ответ 14
Это определенно сработает. По крайней мере, в Chrome. Щелкните правой кнопкой мыши значок "Raw" → Сохранить ссылку как.
Ответ 15
Вместо того, чтобы ссылаться на загрузку определенного файла в репо, вы должны использовать функцию GitHub Releases для связывания загружаемых данных (например, скомпилированных двоичных файлов) с помеченной версией исходного кода, используемой для создания этого данные.
https://github.com/blog/1547-release-your-software
Мы рады объявить релизы, рабочий процесс для доставки программного обеспечения конечным пользователям. Релизы являются первоклассными объектами с изменениями и бинарными активами, которые представляют полную историю проекта за артефактами Git.
Релизы сопровождаются примечаниями к выпуску и ссылками для загрузки программного обеспечения или исходного кода.
Следуя соглашениям многих проектов Git, релизы привязаны к тэгам Git. Вы можете использовать существующий тег или позволить выпускам создавать тег при его публикации.
![введите описание изображения здесь]()
Ответ 16
-
Страница, на которую вы ссылались, отвечает на первый вопрос.
-
В GitHub также есть средство для загрузки таких вещей, как релизы.
-
Код Google не имеет Git вообще.
-
GitHub, Google Code и SourceForge, для начала - бесплатный хостинг. SourceForge все еще может CVS.
Ответ 17
Недавно я нашел службу под названием gitzip
и ее также с открытым исходным кодом:
сайт - http://kinolien.github.io/gitzip/
repo - https://github.com/KinoLien/gitzip
Находясь на вышеуказанном сайте, введите URL-адрес репозитория или каталога, вы можете загрузить отдельные файлы или весь каталог в виде zip файла.
Ответ 18
Чтобы загрузить файл из репозитория Github, используйте команду 'curl' со ссылкой на исходный файл.
curl https://raw.githubusercontent.com/user/repo/filename --output filename
Добавьте параметр --output, а затем новое имя файла, чтобы загрузить необработанный файл во вновь созданный файл.
Ответ 19
Я думаю, что новая структура url
raw.giturl
:
git файл
raw
Ответ 20
Если вы используете curl и firefox... вы можете использовать cliget дополнение, которое генерирует завиток, включая все механизмы аутентификации (например, cookie).
Итак, щелкните правой кнопкой мыши по кнопке raw
cliget → "copy url для ссылки", а затем вставьте ее в оболочку. Вы получите свой файл, даже если вам нужно войти в него, чтобы увидеть его.
Ответ 21
Теперь можно загрузить любой файл или любую конкретную папку в репозитории, используя это расширение Chrome:
GitZip для github:
ссылка: https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn
Использование:
- На любой странице публичных репозиториев GitHub.
- Просто дважды щелкните нужные элементы.
- Нажмите кнопку загрузки внизу справа.
- См. панель мониторинга прогресса и дождитесь загрузки триггера браузера.
- Получить файл ZIP.
![введите описание изображения здесь]()
![введите описание изображения здесь]()
Ответ 22
- С правой стороны чуть ниже "Clone in Desktop" он говорит "Скачать Zip файл"
- Загрузить Zip файл
- Извлеките файл
Ответ 23
Для пользователей с 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
Ответ 24
Или попробуйте это
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');
Ответ 25
Я использовал следующий формат, и мне очень важно сообщить о пути.
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 ¢
Ответ 26
Вы можете попробовать github-files-fetcher, это инструмент командной строки, который загружает одну папку или файл из репозитория GitHub.
Подумайте о реальном сценарии: вы посетили следующую страницу веб-страницы и захотите загрузить только подкаталог async
.
https://github.com/reduxjs/redux/tree/master/examples
жаль, что не разрешено размещать изображения.
С помощью github-files-fetcher
вы должны сначала скопировать url
этой страницы, https://github.com/reduxjs/redux/tree/master/examples/async, а затем запустить github-files-fetcher
команду в командной строке:
fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async
Ответ 27
Это то, что сработало для меня сейчас...
-
Откройте исходный файл на отдельной вкладке.
-
Скопируйте все это в свой блокнот в новый файл.
-
Сохраните файл в расширении, изначально имевшем
... работал только для файла .php я DL.