Hi,
Is there a way to download a file from a private repository using curl or wget?
I'm getting a 401 when hitting below URL. The app password got only read permissions to Repository and I wonder if this is enough or the URL is correct. I can't use the RAW file as the URL to RAW version is changing unless there is URL to always get the RAW version of the file?
curl -s -S --user username:apppassword -L -O https://bitbucket.org/<ORG_NAME>/<REPO>/src/master/<FOLDER>/file.txt
In a browser this will display the file and the website itself so it might not be a good way of doing it but I can't find a correct API URL.
Update: I found a correct URL for the latest RAW file but I always get 401 with curl/wget and an apppassword. What permissions app password needs to get this file?
Ok found a "correct" way to do it. "Correct" as you shouldn't use passwords in a bash like that.
curl -s -S --user username:apppassword -L -O https://api.bitbucket.org/2.0/repositories/<ORGANISATION>/<REPO>/src/master/<FOLDER>/<FILE>
One way to import passwords to a bash script is from an external file.
script.sh
#!/bin/bash
source passwords.txt
curl -s -S --user ${USER}:${APP_PASSWORD} -L -O https://api.bitbucket.org/2.0/repositories/<ORGANISATION>/<REPO>/src/master/<FOLDER>/<FILE>
passwords.txt
USER="username"
APP_PASSWORD="password"
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Just letting anyone who's curious. Don't use api.bitbucket.org, at least every time I did I was just getting an error. Instead, I've opted to just copy the link to the download from the "Download's" Tab in the repository. Below is my example.
curl -H "Cache-Control: no-cache" --user <Username>:<Password> -L -O https://bitbucket.org/<orgname>/<Repository>/get/<filename>.zip
You'll need to add -H "Cache-Control: no-cache" don't ask me why but setting a custom header seems to solve the problem.
I also removed the silence, just because I like to know I'm not just sitting on a dead page.
And if anyone is looking to streamline this. I'm using this as a deployment system via an install.sh script built into a custom ISO with a redirect link to a custom domain that points to the BitBucket download link. Meaning all I need to do is update my URL redirect. I've put below my .sh code in case anyone is curious. It's a neat little trick to save some time in the future.
Obviously, this will also work within the normal terminal.
url=$(curl -Ls -o /dev/null -w %{url_effective} <redirect url>)
echo $url
curl -H "Cache-Control: no-cache" --user <Username>:<Password> -L -O $url
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
As this thread comes up when trying to research this issue at the end of 2021, here is and example line that works for me, when trying to pull down a file in a public repository
curl -s -L https://api.bitbucket.org/2.0/repositories/{workspace)/{repo_name}/src/main/bin/OneLineRoot
This pulls down the file /bin/OneLineRoot within the main branch, from repository {repo_name} within the {workspace}.
Bitbucket's interface needs to be a lot more exact than say the one presented by github.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.