Programing

GitHub에서 단일 파일 다운로드

lottogame 2020. 2. 10. 22:04
반응형

GitHub에서 단일 파일 다운로드


나는 대부분의 개발자, VCS 를 사용한다고 생각하며 일부는 Git을 사용하기를 바랍니다. 저장소에서 단일 파일의 다운로드 URL을 얻는 방법에 대한 팁이나 요령이 있습니까?

원시 파일을 표시하기위한 URL을 원하지 않습니다. 이진의 경우 아무것도 아닙니다.

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

GitHub를 "다운로드 서버"로 사용할 수 있습니까?

Google 코드로 전환하기로 결정한 경우 언급 된 기능이 여기에 표시됩니까?

아니면 오픈 소스 프로젝트를위한 무료 호스팅 및 VCS가 있습니까?


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. RFC 2616에 따라 " 이따로 리디렉션이 변경 될 수 있으므로 클라이언트는 향후 요청에 계속 Request-URI를 사용해야합니다." 이므로이 HTTP 302 리디렉션에서 제공 한 URL을 직접 사용해서는 안됩니다 .


  1. 다운로드하려는 파일로 이동하십시오.
  2. 클릭하면 GitHub UI 내에서 내용을 볼 수 있습니다.
  3. 오른쪽 상단 에서 버튼을 마우스 오른쪽Raw 버튼으로 클릭 하십시오 .
  4. 다른 이름으로 저장...

V3 API를 사용하여 다음과 같은 원시 파일을 얻을 수 있습니다 (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


이 요점 에 따르면 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/

    하나 더 : RHEL7.6에서 다음을 실행하십시오.

    • wget https://URL-from-step3/ --output-document=FILE_NAME

GitHub Mate 는 단일 파일 다운로드를 쉽게 해줍니다. 아이콘을 클릭하여 다운로드하면 현재 Chrome에서만 작동합니다.

GitHub Mate 다운로드


이것은 이제 모든 파일에 대해 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 가 그 좋은 예입니다.


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가 있습니다.


curl이 방법으로 사용할 수 있습니다 :

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

Ocurl이 콘텐츠를 다운로드
L한다는 것은 curl이 리디렉션을 따르는 것을 의미합니다.


github사용하여 zip 파일을 다운로드하려는 경우wget

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

자세한 내용 은이 웹 사이트 를 참조하십시오


이 방법은 MAC을 사용한 적이 없으므로 Windows에서 작동하므로 아래에서 언급 할 키에 대한 MAC의 대체 키가 무엇인지 알 수 없습니다.

CSV 파일에 대해 이야기합시다. CSV 파일을 다운로드하려는 경우 :

  1. 다운로드하려는 특정 데이터 세트로 이동하여 클릭하십시오.
  2. 데이터 세트의 오른쪽 상단에 "Raw"버튼이 표시됩니다.
  3. "Alt"를 누른 다음 "Raw"버튼을 마우스 왼쪽 버튼으로 클릭하십시오.
  4. 전체 CSV가 시스템에 다운로드됩니다.

Remeber는 Alt 키를 누른 상태에서 마우스 왼쪽 버튼을 동시에 클릭해야합니다. "Raw"버튼을 클릭하면 브라우저에서 CSV가 열립니다.

도움이 되길 바랍니다.


raw파일 URL로 수행해야합니다.

예를 들어 AFNetworking의 README를 다운로드하려면 :

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

공개 리포지토리이므로 자격 증명이 필요하지 않습니다. URL의 종류에 유의하십시오 :raw.githubusercontent.com/path/to/file


Enhanced Github 라는 크롬 확장 프로그램이 있습니다

각 파일의 오른쪽에 다운로드 버튼이 직접 추가됩니다.

여기에 이미지 설명을 입력하십시오


이것은 확실히 작동합니다. 적어도 Chrome에서는. "Raw"아이콘-> 다른 이름으로 링크 저장을 마우스 오른쪽 단추로 클릭하십시오 .


리포지토리 내에서 특정 파일을 다운로드하기 위해 링크하는 대신 GitHub의 릴리스 기능을 사용하여 다운로드 가능한 데이터 (예 : 컴파일 된 바이너리)를 해당 데이터를 생성하는 데 사용되는 태그가 지정된 소스 코드 버전과 연결해야합니다.

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

최종 사용자에게 소프트웨어를 제공하는 워크 플로우 인 Release를 발표하게되어 기쁩니다. 릴리스는 Git 아티팩트를 넘어 전체 프로젝트 히스토리를 제공하는 변경 로그 및 이진 자산이 포함 된 최고급 오브젝트입니다.

릴리스에는 소프트웨어 또는 소스 코드를 다운로드하기위한 릴리스 정보 및 링크가 제공됩니다.

많은 Git 프로젝트의 규칙에 따라 릴리스는 Git 태그와 연결됩니다. 기존 태그를 사용하거나 태그가 게시되면 릴리스에서 태그를 만들도록 할 수 있습니다.

여기에 이미지 설명을 입력하십시오


  1. 연결 한 페이지가 첫 번째 질문에 답변합니다.

  2. GitHub에는 릴리스와 같은 것들을위한 다운로드 기능도 있습니다.

  3. Google 코드 에는 Git 이 전혀 없습니다 .

  4. GitHub, Google Code 및 SourceForge 는 시작부터 무료 호스팅입니다. SourceForge는 여전히 CVS를 수행 할 수 있습니다 .


최근에 서비스라는 gitzip오픈 소스를 찾았습니다 .

사이트 -http : //kinolien.github.io/gitzip/

리포지토리-https: //github.com/KinoLien/gitzip

위 사이트를 방문하여 repo 또는 디렉토리 URL을 입력하면 개별 파일 또는 전체 디렉토리를 zip 파일로 다운로드 할 수 있습니다.


Github 저장소에서 파일을 다운로드하려면 원시 파일에 대한 링크와 함께 'curl'명령을 사용하십시오.

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

--output 옵션 다음에 새 파일 이름을 추가하여 원시 파일을 새로 만든 파일로 다운로드하십시오.


새로운 url구조는 raw.giturl다음과 같습니다.

자식 파일

노골적인


curl 및 firefox를 사용하는 경우 ... 모든 인증 메커니즘 (일명 쿠키)을 포함한 curl 호출을 생성하는 cliget 애드온을 사용할 수 있습니다 .

rawcliget-> "link for url for link"버튼을 마우스 오른쪽 버튼으로 클릭 하고 쉘에 붙여 넣으십시오. 파일을 보려면 로그인해야하더라도 파일이 제공됩니다.


이제이 google chrome extension을 사용하여 저장소 내의 파일 또는 특정 폴더를 다운로드 할 수 있습니다.

GitZip for github : 링크 : https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn

사용법 :

  1. 모든 GitHub 공개 리포지토리 페이지에서.
  2. 필요한 항목을 두 번 클릭하십시오.
  3. 오른쪽 하단에서 다운로드 버튼을 클릭하십시오.
  4. 진행 대시 보드를보고 브라우저 트리거 다운로드를 기다리십시오.
  5. ZIP 파일을 가져옵니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


  1. 오른쪽의 "바탕 화면에 복제"바로 아래에 "zip 파일 다운로드"라고 표시되어 있습니다.
  2. Zip 파일 다운로드
  3. 파일 추출

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

some said raw.github.com or raw instead of blob, but the 2nd line works for me and I hope will help others...


You can try github-files-fetcher, it is a command line tool which downloads a single folder or file from a GitHub repo.

Think a real scenario: you were visiting the following webpage page and wanna download the async subdirectory alone.

https://github.com/reduxjs/redux/tree/master/examples

sorry for not being allowed to post images.

With The github-files-fetcher, you should first copy the url of that page, which is https://github.com/reduxjs/redux/tree/master/examples/async, and then run the command below in command line:

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


This is what worked for me just now...

  1. Open the raw file in a seperate tab.

  2. Copy the whole thing in your notepad in a new file.

  3. 원래 확장명으로 파일을 저장하십시오.

... 지금 방금 DL .php 파일을 위해 일했습니다.

참고 URL : https://stackoverflow.com/questions/4604663/download-single-files-from-github



반응형