从私有仓库中获取来自 Github 的原始文件

Mar*_*chi 5 linux git ubuntu github amazon-web-services

我正在尝试使用 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(注意URL 中只添加了“ raw ”一词)

这太棒了我然后做

ubuntu@ip-172-31-39-47:~$ wget https://raw.githubusercontent.com/samirtendulkar/profile_rest_api/master/deploy/server_setup.sh
Run Code Online (Sandbox Code Playgroud)

当我这样做ls时显示文件已下载

ubuntu@ip-172-31-39-47:~$ ls
'server_setup.sh'
Run Code Online (Sandbox Code Playgroud)

对于私人回购原始文件带有令牌

https://github.com/samirtendulkar/my_project/blob/master/deploy/server_setup.sh

到目前为止一切顺利 现在当我点击 Raw(见上图)时,我的 URL 发生了变化,其中包含一个标记以及“ raw ”前缀

https://raw.githubusercontent.com/samirtendulkar/my_project/master/deploy/server_setup.sh?token=AkSv7SycSHAcUNlSEZamo6hpMAI6ZhsLks5b4uFuwA%3D%3D

url 有这些额外的参数 ?token=AkSv7SycSHacUNlSEZamo6hpMAI6ZhsLks5b4uFuwA%3D%3D

我的 wget 不起作用。我如何解决这个问题。顺便说一句,当我说它不起作用时,我的意思是而不是ls显示

ubuntu@ip-172-31-39-47:~$ ls
    'server_setup.sh'
Run Code Online (Sandbox Code Playgroud)

它显示如下

在此处输入图片说明 这并没有让我运行更多的命令,比如

ubuntu@ip-172-31-39-47:~$ chmod  +x server_setup.sh
Run Code Online (Sandbox Code Playgroud)

ubuntu@ip-172-31-39-47:~$ sudo ./server_setup.sh
Run Code Online (Sandbox Code Playgroud)

我需要将项目放到 AWS 上 在此处输入图片说明

joa*_*nis 5

-O当您一次只下载一个文件时,您可以使用 wget 的选项:

wget -O server_setup.sh https://raw.githubusercontent.com/samirtendulkar/my_project/master/deploy/server_setup.sh?token=AkSv7SycSHacUNlSEZamo6hpMAI6ZhsLks5b4uFuwA%3D%3D
Run Code Online (Sandbox Code Playgroud)

缺点是你必须知道输出文件名,但我认为如果我很好地理解你的问题就可以了。


小智 5

令牌来自个人访问令牌部分,您可以在Github 中找到详细信息。

使用 Personal Access Tokens,您可以创建一个并选择第一个选项“repo”来获得对令牌私有 repos 的访问控制。

以下行解决了我无法下载文件的问题。

希望这会有所帮助

wget --header 'Authorization: token PERSONAL_ACCESS_TOKEN_HERE' https://raw.githubusercontent.com/repoOwner/repoName/master/folder/filename
Run Code Online (Sandbox Code Playgroud)