我正在尝试使用wget从github 私有项目 中获取原始文件。通常如果我的项目是公开的,那很简单
对于公共回购,这是我的回购网址(您无需单击它即可回答此问题)
https://github.com/samirtendulkar/profile_rest_api/blob/master/deploy/server_setup.sh
我舔完原始文件后,我的URL如下所示
https://raw.githubusercontent.com/samirtendulkar/profile_rest_api/master/deploy/server_setup.sh(请注意,仅将单词“ raw ”添加到URL)
那我要做的很棒
ubuntu@ip-172-31-39-47:~$ wget https://raw.githubusercontent.com/samirtendulkar/profile_rest_api/master/deploy/server_setup.sh
当我执行ls
时,它表明文件已下载
ubuntu@ip-172-31-39-47:~$ ls
'server_setup.sh'
用于私人存储库原始文件带有令牌
https://github.com/samirtendulkar/my_project/blob/master/deploy/server_setup.sh
到目前为止一切正常,现在,当我单击Raw时(请参见上图),我的URL发生了变化,并在其中带有令牌以及“ raw ”前缀
该网址具有这些额外的参数?token=AkSv7SycSHacUNlSEZamo6hpMAI6ZhsLks5b4uFuwA%3D%3D
我的wget不起作用。如何解决此问题。顺便说一句,当我说它不起作用时,我的意思不是显示ls
ubuntu@ip-172-31-39-47:~$ ls
'server_setup.sh'
它显示如下
之类的其他命令ubuntu@ip-172-31-39-47:~$ chmod +x server_setup.sh
和
ubuntu@ip-172-31-39-47:~$ sudo ./server_setup.sh
答案 0 :(得分:3)
该令牌来自“个人访问令牌”部分,您可以在Github中找到详细信息。
使用个人访问令牌,您可以创建一个并选择第一个选项“ repo”以获取对该令牌的私有仓库的访问控制。
以下一行解决了我无法下载文件的问题。
希望这会有所帮助
wget --header 'Authorization: token PERSONAL_ACCESS_TOKEN_HERE' https://raw.githubusercontent.com/repoOwner/repoName/master/folder/filename
答案 1 :(得分:2)
一次只下载一个文件时,可以使用wget的-O
选项:
wget -O server_setup.sh https://raw.githubusercontent.com/samirtendulkar/my_project/master/deploy/server_setup.sh?token=AkSv7SycSHacUNlSEZamo6hpMAI6ZhsLks5b4uFuwA%3D%3D
缺点是您必须知道输出文件名,但是如果我很好地理解您的问题,我认为可以。