Cách tải các File đơn lẻ từ kho lưu trữ GitHub
GitHub không chỉ là một nơi để lưu trữ các dự án code lớn mà còn là một máy chủ lưu trữ File tốt. Đôi khi, bạn chỉ muốn tải xuống một hoặc hai File mà không cần phải tải toàn bộ kho lưu trữ. May mắn thay, GitHub cung cấp các phương pháp đơn giản để bạn có thể làm điều này.
Tải một File đơn từ GitHub
Nếu bạn sử dụng trình duyệt web, việc tải xuống các File đơn là dễ dàng. Hãy truy cập vào File bạn muốn tải xuống và nhấp chuột vào "Raw:".
Tải các tệp đơn lẻ từ kho lưu trữ GitHub
Hành động này sẽ mở ra một trang chứa liên kết trực tiếp đến File. Bạn có thể sao chép liên kết này hoặc nhấp chuột phải và chọn "Save As" để tải trực tiếp File xuống máy tính của mình.
Đối với các File code, File được tải xuống có thể được lưu dưới dạng .txt, vì vậy bạn cần phải chỉnh sửa phần mở rộng file theo ý muốn.
Tải File đơn lẻ từ Command Line
Các File được lưu trữ trên trang raw.githubusercontent.com có thể được tải trực tiếp bằng cách sử dụng câu lệnh wget hoặc curl. Nếu bạn đã biết tên người dùng, kho lưu trữ và đường dẫn của File, bạn có thể tải xuống bất kỳ File nào trên bất kỳ nhánh nào bằng cách sử dụng đường dẫn sau:
wget https://raw.githubusercontent.com/username/repository/branch/path/filename.md
Nếu bạn muốn sử dụng API của Git, bạn có thể tương tác trực tiếp với nó và tải xuống File khi không biết chính xác vị trí của File. Bạn cần tạo mã truy cập cá nhân (personal access token) để sử dụng API và thay thế "ACCESS_TOKEN" trong câu lệnh này:
curl -H 'Authorization: token ACCESS_TOKEN ' -H 'Accept: application/vnd.github.v3.raw' -O -L https://api.github.com/repos/username/repository/contents/path/filename.md
Endpoint /repos/{user}/{repo}/contents
sẽ thực hiện các tác vụ khác nhau tùy thuộc vào đường dẫn trỏ đến một thư mục hay một File. Nếu đó là một File, nó sẽ trả về các dữ liệu về File đó:
{
"type": "file",
"encoding": "base64",
"size": 5362,
"name": "README.md",
"path": "README.md",
"content": "encoded content ...",
"sha": "3d21ec53a331a6f037a91c368710b99387d012c1",
"url": "https://api.github.com/repos/octokit/octokit.rb/contents/README.md",
"git_url": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1",
"html_url": "https://github.com/octokit/octokit.rb/blob/master/README.md",
"download_url": "https://raw.githubusercontent.com/octokit/octokit.rb/master/README.md",
"_links": {
"git": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1",
"self": "https://api.github.com/repos/octokit/octokit.rb/contents/README.md",
"html": "https://github.com/octokit/octokit.rb/blob/master/README.md"
}
}
Nếu đó là một thư mục, nó sẽ trả về danh sách các File và thư mục con:
[
{
"type": "file",
"size": 625,
"name": "octokit.rb",
"path": "lib/octokit.rb",
"sha": "fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b",
"url": "https://api.github.com/repos/octokit/octokit.rb/contents/lib/octokit.rb",
"git_url": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b",
"html_url": "https://github.com/octokit/octokit.rb/blob/master/lib/octokit.rb",
"download_url": "https://raw.githubusercontent.com/octokit/octokit.rb/master/lib/octokit.rb",
"_links": {
"self": "https://api.github.com/repos/octokit/octokit.rb/contents/lib/octokit.rb",
"git": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/fff6fe3a23bf1c8ea0692b4a883af99bee26fd3b",
"html": "https://github.com/octokit/octokit.rb/blob/master/lib/octokit.rb"
}
},
{
"type": "dir",
"size": 0,
"name": "octokit",
"path": "lib/octokit",
"sha": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d",
"url": "https://api.github.com/repos/octokit/octokit.rb/contents/lib/octokit",
"git_url": "https://api.github.com/repos/octokit/octokit.rb/git/trees/a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d",
"html_url": "https://github.com/octokit/octokit.rb/tree/master/lib/octokit",
"download_url": null,
"_links": {
"self": "https://api.github.com/repos/octokit/octokit.rb/contents/lib/octokit",
"git": "https://api.github.com/repos/octokit/octokit.rb/git/trees/a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d",
"html": "https://github.com/octokit/octokit.rb/tree/master/lib/octokit"
}
}
]
Sau đó, bạn có thể sử dụng các công cụ phân tích cú pháp JSON như jq
để lấy URL và tải xuống. Để lấy danh sách các File trong kho lưu trữ theo cách đệ quy, bạn cần tìm nạp cây gốc. Bên cạnh đó, bạn cũng có thể sử dụng GitHub để tạo một trang web đơn giản trong chỉ 15 phút.
Hy vọng bài viết này giúp bạn tải xuống các tệp đơn giản từ kho lưu trữ GitHub một cách dễ dàng!