it-swarm.com.ru

Скачать отдельные файлы с GitHub

Я думаю, что большинство из вас, разработчики, используют любые VCS , и я надеюсь, что некоторые из вас используют Git. У вас есть совет или хитрость, как получить URL-адрес для загрузки одного файла в хранилище?

Я не хочу URL для отображения необработанного файла; в случае двоичных файлов это даром.

http://support.github.com/discussions/feature-requests/41-download-single-file

Можно ли даже использовать GitHub в качестве «сервера загрузки»?

Если мы решим перейти на Google Code, будут ли здесь представлены упомянутые функции?

Или есть бесплатный хостинг и VCS для проектов с открытым исходным кодом?

471
Radek Simko

Git не поддерживает загрузку частей репозитория. Вы должны загрузить все это. Но вы должны быть в состоянии сделать это с GitHub.

При просмотре файла у него есть ссылка на «сырую» версию. URL построен так

https://github.com/user/repository/raw/branch/filename

Заполнив пробелы в URL, вы можете использовать Wget или cURL (с параметром -L, см. Ниже) или что угодно, чтобы загрузить один файл. Опять же, вы не получите ни одной из функций контроля версий Nice, используемых 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 для будущих запросов».

473
jonescb
  1. Перейдите к файлу, который вы хотите скачать.
  2. Нажмите на него, чтобы просмотреть содержимое в GitHub UI.
  3. В правом верхнем углу щелкните правой кнопкой мыши кнопку Raw.
  4. Сохранить как...
441
bearfriend

Вы можете использовать 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

33
thomasfuchs

GitHub Mate облегчает загрузку одного файла, просто нажмите значок, чтобы загрузить, в настоящее время он работает только в Chrome.

GitHub Mate Download

14
Cam Song

Согласно это Gist , вы можете использовать wget или cURL: 

  1. Нажмите на имя файла в репозитории GitHub.
  2. Нажмите Raw, чтобы отобразить содержимое файла
  3. Скопируйте URL в вашем браузере.
  4. В командной строке запустите:
    • wget --no-check-certificate --content-disposition https://URL-from-step3/
    • curl -LJO https://URL-from-step3/
13
Ted Cox

Теперь это возможно в 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 является отличным примером этого.

11
Joe Leo

Чтобы узнать, что сказал 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
Drew Michel

Вы можете использовать curl следующим образом:

curl -OL https://raw.githubusercontent.com/<username>/<repo-name>/<branch-name>/path/to/file

O означает, что curl загружает контент
L означает, что curl следует за перенаправлением

8
Mark

Если вы хотите загрузить Zip-файл из github, используя wget

wget -O filename.Zip https://github.com/downloads/user/repository/filename.zip?raw=true

см. этот веб-сайт для более подробной информации

7
DJJ

Существует расширение Chrome, которое называется Enhanced Github

Это добавит кнопку загрузки прямо справа от каждого файла.

 enter image description here

4
Abraham Murciano Benzadon

Вы должны просто сделать это с помощью raw URL вашего файла.

Например, чтобы загрузить README AFNetworking:

curl https://raw.githubusercontent.com/AFNetworking/AFNetworking/master/README.md > ADREADME.md 

Поскольку это общедоступное репо, вам не нужны никакие учетные данные . Обратите внимание на тип URL: raw.githubusercontent.com/path/to/file

4
Kevin Delord

Этот метод работает для Windows, так как я никогда не использовал MAC, поэтому я не знаю, каковы альтернативные ключи в MAC для ключей, о которых я собираюсь упомянуть ниже. 

Давайте поговорим о файлах CSV. Если вы хотите скачать файл CSV:

  1. Перейдите к тому конкретному набору данных, который вы хотите загрузить, и щелкните по нему.
  2. Вы увидите кнопку «Raw» в верхней правой части набора данных.
  3. Нажмите «Alt», а затем нажмите левую кнопку «Raw».
  4. Весь CSV будет загружен в вашу систему.

Помните, вы должны нажать Alt и левой кнопкой мыши одновременно. Простое нажатие на кнопку «Raw» откроет CSV в браузере.

Надеюсь, это поможет.

4
saadi123

Это определенно будет работать. По крайней мере, в Chrome. Щелкните правой кнопкой мыши значок «Raw» -> Сохранить ссылку как .

3
Ankish Jain

Вместо ссылки на скачивание определенного файла в репозитории вы должны использовать функцию Releases GitHub, чтобы связать загружаемые данные (например, скомпилированные двоичные файлы) с теговой версией исходного кода, используемого для генерации этих данных. 

https://github.com/blog/1547-release-your-software

Мы рады анонсировать релизы, рабочий процесс для доставки программного обеспечения конечным пользователям. Релизы - это первоклассные объекты с журналами изменений и двоичными активами, которые представляют полную историю проекта за пределами артефактов Git.

Релизы сопровождаются примечаниями к выпуску и ссылками для загрузки программного обеспечения или исходного кода.

Следуя соглашениям многих проектов Git, релизы привязаны к тегам Git. Вы можете использовать существующий тег или позволить релизам создавать тег при публикации.

 enter image description here

2
pkamb

Недавно я нашел сервис под названием gitzip и его также с открытым исходным кодом:

сайт - http://kinolien.github.io/gitzip/

рЕПО - https://github.com/KinoLien/gitzip

Посетите вышеуказанный сайт, введите URL-адрес хранилища или каталога, вы можете загрузить отдельные файлы или весь каталог в виде Zip-файла.

2
avi
  1. Страница, на которую вы ссылаетесь, отвечает на первый вопрос.

  2. GitHub также имеет возможность загрузки таких вещей, как релизы.

  3. Google Code не имеет Git вообще.

  4. GitHub, Google Code и SourceForge , только для начала, бесплатный хостинг. SourceForge все еще может делать CVS .

2
bmargulies

Теперь можно загрузить любой файл или любую конкретную папку в репозитории с помощью этого расширения Google Chrome:

GitZip для github:link: https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn

Использование :

  1. На любой странице репозитория GitHub.
  2. Просто дважды кликните по нужным предметам.
  3. Нажмите кнопку загрузки в правом нижнем углу.
  4. Посмотрите на панель прогресса и дождитесь загрузки триггера браузера.
  5. Получите файл Zip.

 enter image description here

 enter image description here

1
Natesh bhat

Чтобы загрузить файл из репозитория Github, используйте команду 'curl' со ссылкой на необработанный файл. 

curl https://raw.githubusercontent.com/user/repo/filename --output filename

Добавьте параметр --output, а затем новое имя файла, чтобы загрузить необработанный файл во вновь созданный файл.

1
George

Я думаю, что новая структура url - это raw.giturl, например:

git file

raw

1
fsmart

Если вы используете curl и firefox ... вы можете использовать cliget add-on, который генерирует вызов curl, включая все механизмы аутентификации (также называемые куки). 

Поэтому щелкните правой кнопкой мыши на кнопке raw -> «скопировать ссылку для ссылки» и вставьте ее в оболочку. Вы получите свой файл, даже если вам пришлось войти в систему, чтобы увидеть его.

1
estani

Вы можете попробовать 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 , а затем запустить команду ниже в командной строке:

fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async

0
Gyumeijie

Я использовал следующий формат, и я чувствую, что важно сообщить о пути.

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 ¢

0
rezwits

Для пользователей с 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

0
Gregory Suvalian
  1. Скачать Zip файл
  2. Распакуйте файл
  3. Extract the file
0
Evan Gertis

Или попробуйте это 

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');
0
Ayush Bansal