Working with private channels using third-party tools#
In order to access private channels via third-party tools (such as pip, Twine, or R), you must have a user token. For more information, see Tokens.
Python packages#
Uploading#
Twine is a popular tool for uploading Python packages to PyPI-like repositories. Run the following command to upload Python packages:
twine upload --repository-url http://<DOMAIN>/api/repo/<CHANNEL>
<PACKAGE> -u <TOKEN> -p x-auth-token
Example
twine upload --repository-url
http://demo-repo.com/api/repo/my-pip-channel six-1.13.0-py2.py3-none-any.whl -u 46e98d3dbf2378bb26e2107867652ee734eb098ea5b96f35 -p x-auth-token
If the token is incorrect, you will receive a 401 error message.
Please refer to the Twine package documentation to learn how to configure your username and password via the configuration file or environment variables.
Installing#
Similar to pip, Anaconda Server supports user authentication using Basic Authentication. The following is the proper format for installing pip packages:
pip install --trusted-host <DOMAIN> --index-url
http://<TOKEN>:x-auth-token@<DOMAIN>/api/repo/<CHANNEL>/simple <PACKAGE>
Note
x-auth-token
is not a placeholder, but is used as the actual password for Basic Authentication.
Example
pip install --trusted-host demo-repo.com --index-url
http://46e98d3dbf2378bb26e2107867652ee734eb098ea5b96f35:[email protected]/api/repo/alex-pip/simple six
Make sure to add a trusted host.
Please refer to the pip documentation to learn how to configure the index URL via the configuration file or environment variables.
R packages#
Uploading#
Since there is no standard tool for uploading R packages, you can use either the UI or API directly. Run the following command to upload R packages:
curl -v -F filetype=cran_source_package -F content=@<FILENAME>
http://<DOMAIN>/api/repo/<CHANNEL> -H"X-Auth: <TOKEN>"
Where <TOKEN>
is the x-auth-token
.
Example
curl -v -F filetype=cran_source_package -F content=@abc_2.1.tar.gz
http://demo-repo.com/api/repo/alex-pip -H"X-Auth: 46e98d3dbf2378bb26e2107867652ee734eb098ea5b96f35"
Please use cran_source_package
for source packages and cran_binary_package
for binary R packages.
Installing#
You can use your domain as a repository URL in the install.packages
function by injecting a token into the path:
http://<DOMAIN>/api/repo/t/<TOKEN>/<CHANNEL>/cran
This may look something like the following:
http://demo-repo.com/api/repo/t/46e98d3dbf2378bb26e2107867652ee734eb098ea5b96f35/alex-pip/cran
Example
> install.packages("abc", repos="http://demo-repo.com/api/t/46e98d3dbf2378bb26e2107867652ee734eb098ea5b96f35/repo/alex-pip/cran")