私はあなた、開発者のほとんどがany _ vcs _ を使っていると思います、そしてあなたの何人かがGitを使ってほしいと思います。リポジトリ内の単一ファイルのダウンロードURLを取得するためのヒントやテクニックはありますか。
生ファイルを表示するためのURLは必要ありません。バイナリの場合は無駄です。
http://support.github.com/discussions/feature-requests/41-download-single-file
GitHubを「ダウンロードサーバー」として使うことさえ可能ですか?
Google Codeに切り替えることにした場合、ここで紹介した機能は表示されますか。
それともオープンソースプロジェクトのための無料ホスティングとVCSはありますか?
Gitはリポジトリの一部のダウンロードをサポートしていません。全部ダウンロードする必要があります。しかし、GitHubでもこれが可能になるはずです。
あなたがファイルを見るとき、それは「生の」バージョンへのリンクを持っています。 _ url _ は次のように構成されています。
https://raw.githubusercontent.com/user/repository/branch/filename
URLの空白を埋めることで、 Wget または cURL (-L
オプション付き、下記参照)を使用することも、単一のファイルをダウンロードするために何でも使用することもできます。繰り返しますが、これを実行してもGitで使用されているNiceバージョン管理機能は使用できません。
更新:私はあなたがこれがバイナリーファイルのために働かないと言ったのに気づいた。 Gitリポジトリではおそらくバイナリファイルを使うべきではありませんが、GitHubには各リポジトリごとにファイルのアップロードに使用できるダウンロードセクションがあります。複数のバイナリが必要な場合は、.Zipファイルを使用できます。アップロードされたファイルをダウンロードするためのURLは以下のとおりです。
https://github.com/downloads/user/repository/filename
github.com
のリンクからの上記のURLは、raw.githubusercontent.com
にリダイレクトされます。このHTTP 302リダイレクトによって与えられたURLを直接使うべきではありません。なぜなら、 RFC 2616 あたり: "リダイレクトは時々変更されるかもしれないので、クライアントは将来の要求にRequest-URIを使い続けるべきである"。
Raw
ボタン。あなたはこのような生のファイルを得るために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
this Gist によると、wgetまたはcURLを使うことができます。
wget --no-check-certificate --content-disposition https://URL-from-step3/
curl -LJO https://URL-from-step3/
GitHub Mate は単一ファイルのダウンロードを簡単にします。ダウンロードするにはアイコンをクリックするだけです。現在はChromeでしか動作しません。
これは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
O
はcurlがコンテンツをダウンロードすることを意味しますL
は、カールがリダイレクトに従うことを意味します
github
を使ってwget
からZipファイルをダウンロードしたい場合
wget -O filename.Zip https://github.com/downloads/user/repository/filename.zip?raw=true
詳しくは ウェブサイト をご覧ください。
あなたのファイルのraw
URLでそれをやるべきです。
たとえばAFNetworkingのREADMEをダウンロードするには、次のようにします。
curl https://raw.githubusercontent.com/AFNetworking/AFNetworking/master/README.md > ADREADME.md
それは公共の場であるのであなたはどんな資格も必要としません。 URLの種類に注意してください。raw.githubusercontent.com/path/to/file
私はこれまでにMACを使ったことがないので、このメソッドはWindowsで動作します。そのため、次に説明するキーのMACの代替キーが何であるかわかりません。
CSVファイルについて話しましょう。 CSVファイルをダウンロードしたい場合は、
覚えておいて、あなたはAltキーを押しながら同時に左クリックする必要があります。 「Raw」ボタンをクリックするだけで、ブラウザにCSVが表示されます。
それが役立つことを願っています。
リポジトリ内の特定のファイルをダウンロードするためにリンクするのではなく、GitHubの Releases 機能を使用してダウンロード可能なデータ(コンパイル済みバイナリなど)をそのデータの生成に使用したタグ付きバージョンのソースコードに関連付けます。
https://github.com/blog/1547-release-your-software
ソフトウェアをエンドユーザーに出荷するためのワークフローであるReleasesを発表できることを楽しみにしています。リリースは、Git成果物を超えた完全なプロジェクト履歴を示す、変更ログとバイナリー資産を持つ一流のオブジェクトです。
リリースには、リリースノートとソフトウェアまたはソースコードをダウンロードするためのリンクが付いています。
多くのGitプロジェクトの規約に従って、リリースはGitタグに結び付けられています。既存のタグを使用することも、公開時にリリースにタグを作成させることもできます。
これは間違いなくうまくいきます。少なくともChromeでは。 「Raw」アイコンを右クリックして - > Save Link As をクリックします。
私は最近gitzip
というサービスとそのオープンソースを見つけました。
サイト - http://kinolien.github.io/gitzip/
レポ - https://github.com/KinoLien/gitzip
上記のサイトにアクセスし、リポジトリまたはディレクトリのURLを入力して、個々のファイルまたはディレクトリ全体をZipファイルとしてダウンロードできます。
あなたがリンクしたページは最初の質問に答えます。
GitHubには、リリースなどのダウンロード機能もあります。
Google Code に Git はまったくありません。
GitHub、Google Code、および SourceForge は、はじめは無料のホスティングサービスです。 SourceForgeはまだ _ cvs _ をするかもしれません。
これで、このGoogle Chrome拡張機能を使用して、リポジトリ内の任意のファイルまたは特定のフォルダをダウンロードすることができます。
Github用GitZip: link: https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn
Githubリポジトリからファイルをダウンロードするには、rawファイルへのリンクを付けて 'curl'コマンドを使用します。
curl https://raw.githubusercontent.com/user/repo/filename --output filename
--outputオプションに続けて新しいファイル名を追加して、生ファイルを新しく作成したファイルにダウンロードします。
たまたまcurlとfirefoxを使っているのであれば... cliget add-onを使って、すべての認証メカニズム(別名cookie)を含むcurlコールを生成することができます。
それでraw
ボタンcliget - > "リンクのURLをコピー"を右クリックし、それをシェルに貼り付けます。あなたがそれを見るためにログインしなければならなかったとしてもあなたはあなたのファイルを手に入れるでしょう。
github-files-fetcher を試すことができます。これは、GitHubリポジトリから単一のフォルダまたはファイルをダウンロードするコマンドラインツールです。
本当のシナリオを考えてみてください。次のWebページのページにアクセスして、async
サブディレクトリだけをダウンロードしたいのです。
https://github.com/reduxjs/redux/tree/master/examples
画像の投稿を許可されていないのが残念。
The github-files-fetcher
では、最初にそのページのurl
、つまり https://github.com/reduxjs/redux/tree/master/examples/async をコピーしてから、コマンドラインで以下のコマンドを実行します。
fetcher --url=https://github.com/reduxjs/redux/tree/master/examples/async
私は以下のフォーマットを使用しました、そして私はそれがパスについて知らせることが重要であると感じます。
https://github.com/user/repository/raw/branch/filename
^^^上記は私の考えでは完全ではありません
https://github.com/<user>/<repoROOTname>/blob/master/<path>/<filename>?raw=true
raw.github.comまたはblobではなくrawと言う人もいますが、2行目が私のために機能します。他の人が役立つことを願っています...
2¢
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');