成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Artipie:可用于 Python 的開源倉庫管理器

開源
Artipie 是一個開源的自托管的倉庫管理器,它不僅可以用于 Python。

在學生時代使用 Python 開發時,我發現我需要一些私人的集中存儲。這樣我就可以存儲二進制和文本數據文件,以及 Python 軟件包。我在 ??Artipie?? 中找到了答案,這是一個開源的自托管的軟件倉庫管理器。

在大學里,我和我的同事們對來自實驗測量的大量數據進行研究。我使用 Python 來處理和可視化它們。當時我的大學同事是數學家,沒有軟件開發技術的經驗。他們通常只是在閃存盤上或通過電子郵件傳遞數據和代碼。我努力向他們介紹像 ??Git?? 這樣的版本管理系統,但沒有成功。

Python 倉庫

Artipie 支持 ??PyPI?? 倉庫,與 ??twine?? 和 ??pip?? 兼容。這意味著你可以完全像在 ??PyPI?? 和 ??TestPyPI?? 倉庫上安裝或發布軟件包那樣使用 Artipie Python 倉庫。

要創建你自己的 Python 倉庫,你可以使用名為 ??Artipie Central?? 的 Artipie 托管實例。當你登錄后,你會看到一個列出你的倉庫的頁面(開始時是空的),以及一個添加新倉庫的表單。為你的新倉庫選擇一個名字(例如,??mypython??),選擇 ??Python?? 作為倉庫類型,然后點擊 “添加Add” 按鈕。

接下來,你會看到一個以 ??YAML?? 格式顯示倉庫設置的頁面:

---
repo:
type: pypi
storage: default
permissions:
olenagerasimova:
- upload
"*":
- download

配置中的 ??type?? 映射設置了倉庫的類型。在這個例子中,Python 倉庫被配置為默認的 Artipie Central 存儲。

??storage?? 映射定義了所有倉庫包的存儲位置。這可以是任何文件系統或 S3 存儲兼容的位置。Artipie Central 有一個預先配置的 ??default?? 存儲,可以使用它進行測試。

??permissions?? 映射允許為用戶 ??olenagerasimova?? 上傳,并允許任何人下載任何軟件包。

為了確保這個倉庫的存在和工作,在你的瀏覽器中打開 ??索引頁??。顯示的是軟件包列表。如果你剛剛創建了一個新的版本庫,但還沒有上傳軟件包,那么倉庫的索引頁是空白的。

二進制倉庫

你可以在 Artipie 中存儲任何種類的文件。存儲類型是 ??file?? 或 ??binary??,我用這個作為實驗數據的存儲。我把它作為 Python 可視化的輸入。在 Artipie Central 可以創建一個文件倉庫,與 Python 倉庫的方式相同。你給它一個名字,選擇 ??binary?? 類型,然后點擊 “添加Add” 按鈕。

---
repo:
type: file
storage: default
permissions:
olenagerasimova:
- upload
- download
"*":
- download

這些設置基本上與 Python 相同。只有倉庫的類型不同。在這個例子中,二進制倉庫被稱為 ??data??。它包含三個帶有一些數字的文本文件:

6
3.5
5
4
4.5
3
2.7
5
6
3
1.2
3.2
6

另外兩個文件的形式相同(只是數字不同)。要想自己看這些文件,請在瀏覽器中打開鏈接 ??一??、??二?? 和 ??三?? 并下載文件,或者你可以用 ??httpie?? 執行 GET 請求:

httpie -a https://central.artipie.com/olenagerasimova/data/y1.dat > ./data/y1.da

這些文件是用 PUT 請求上傳到 Artipie Central 的 ??data?? 存儲庫的:

httpie -a olenagerasimova:*** PUT 
https://central.artipie.com/olenagerasimova/data/y1.dat @data/y1.dat

httpie -a olenagerasimova:*** PUT
https://central.artipie.com/olenagerasimova/data/y2.dat @data/y2.dat

httpie -a olenagerasimova:*** PUT
https://central.artipie.com/olenagerasimova/data/y3.dat @data/y3.dat

由于這個二進制倉庫的 API 非常簡單(HTTP ??PUT?? 和 ??GET?? 請求),用任何語言編寫一段代碼來上傳和下載所需的文件都很容易。

Python 項目

可以從我的 ??GitHub 倉庫??中獲得一個 Python 項目的示例源代碼。這個示例的主要想法是,從 Artipie Central 下載三個數據文件,將數字讀入數組,并使用這些數組來繪制一個圖。使用 ??pip?? 來安裝這個例子包并運行它:

$ python3 -m pip install --index-url \
https://central.artipie.com/olenagerasimova/pypi/ \
pypiexample
$ python3 -m pypiexample

通過設置 ??--index-url?? 到 Artipie Central 的 Python 倉庫,??pip?? 從它那里下載軟件包,而不是通常默認的 PyPi 倉庫。運行這些命令后,會顯示一個帶有三條曲線的極坐標圖,這是數據文件的可視化。

要將軟件包發布到 Artipie Central 倉庫,請用 ??twine?? 構建并上傳:

commandline
$ python setup.py sdist bdist_wheel

$ twine upload --repository-url \
https://central.artipie.com/olenagerasimova/pypi
-u olenagerasimova -p *** dist/*

在 Artipie Central 中設置 ??files?? 倉庫,并創建一個 Python 示例項目是多么容易。不過,你不必使用 Artipie Central。Artipie 可以自托管,所以你可以在你自己的本地網絡上運行一個倉庫。

將 Artipie 作為一個容器運行

將 Artipie 作為一個容器運行,設置起來就像安裝 Podman 或 Docker 一樣容易。假設你已經安裝了其中之一,打開終端:

$ podman run -it -p 8080:8080 -p 8086:8086 artipie/artipie:latest

這將啟動一個運行最新 Artipie 版本的新容器。它還映射了兩個端口。你的倉庫在 8080 端口提供服務。Artipie 的 Rest API 和 Swagger 文檔在 8086 端口提供。新的鏡像會生成一個默認的配置,打印一個正在運行的倉庫列表,測試證書,以及一個指向 ??Swagger?? 文檔的鏈接到你的控制臺。

你也可以使用 Artipie Rest API 來查看現有的倉庫:

  • 進入 Swagger 文檔頁面 ??http://localhost:8086/api/index-org.html??。
  • 在 “選擇一個定義Select a definition” 列表中,選擇 “認證令牌Auth token”。
  • 生成并復制用戶 ??artipie?? 的認證令牌,密碼是 ??artipie??。
  • 切換到 “倉庫Repositories” 定義,點擊 “認證Authorize” 按鈕,然后粘貼令牌。

Image of the Swagger documentation page,

Image of the Swagger documentation page,

對 ??/api/v1/repository/list?? 執行一個 GET 請求。在響應中,你會收到一個包含三個默認倉庫的 JSON 列表:

[
"artipie/my-bin",
"artipie/my-docker",
"artipie/my-maven"
]

默認配置中不包括 Python 倉庫。你可以通過從 Swagger 接口向 ??/api/v1/repository/{user}/{repo}?? 執行 PUT 請求來糾正。在這種情況下,??user?? 是默認用戶的名字(??artipie??),??repo?? 是新倉庫的名字。你可以把你的新 Python 代碼庫稱為 ??my-pypi??。下面是一個請求體的例子,包含帶倉庫設置的 JSON 對象:

{ 
"repo": {
"type": "pypi",
"storage": "default",
"permissions": {
"*": [
"download"
],
"artipie": [
"upload"
]
}
}
}

所有的 JSON 字段都和你在儀表板上創建 YAML 格式的倉庫時一樣。我們版本庫的類型是 ??pypi??,使用默認存儲,任何人都可以下載,但只有用戶 ??artipie?? 可以上傳。

再次向 ??/api/v1/repository/list?? 發出 GET 請求,確保你的倉庫被創建?,F在,你有四個倉庫:

[
"artipie/my-bin",
"artipie/my-docker",
"artipie/my-maven",
"artipie/my-pypi"
]

你已經創建了你自己的 Artipie 安裝,包含了幾個倉庫! Artipie 鏡像既可以在個人電腦上運行,也可以在私人網絡內的遠程服務器上運行。你可以用它來在一個公司、團體或大學內交換軟件包。這是一個建立你自己的軟件服務的簡單方法,而且它不僅僅適用于 Python?;ㄐr間來探索 Artipie,看看它能為你帶來什么。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2020-09-29 16:49:41

開源密碼管理器互聯網

2012-04-20 14:44:11

JavaScript

2018-05-02 09:00:26

開源 Web 服務器

2022-07-11 07:31:12

massCode開源工具

2014-02-24 15:26:39

開源文件管理器

2013-12-11 09:47:35

NetflixAWSIaaS

2010-10-08 09:26:17

.NET微軟

2022-08-09 18:00:26

開源密碼管理器Padloc

2016-12-23 17:20:56

2020-04-15 19:31:59

Bitwarden開源密碼管理器

2009-06-17 08:41:45

Windows 7微軟操作系統

2023-10-22 08:44:06

2022-07-14 16:18:32

massCode開源

2010-12-28 14:53:29

服務器管理器

2021-11-15 14:42:20

Motrix下載管理器開源

2020-09-23 06:21:44

KeePassXC密碼管理器開源

2023-11-25 17:17:06

2025-06-06 08:00:00

上下文管理器Python開發

2012-04-23 10:49:04

AWTJava

2009-03-06 15:27:10

LinuxUbuntuBlueman
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线播放中文字幕 | 国产一级淫片免费视频 | 日本中文字幕一区 | 亚洲精品国产偷自在线观看 | 日韩一区二区三区视频 | 天堂一区二区三区 | 狠狠操操| 国产ts人妖系列高潮 | 国内久久 | 久久九| 一级h片 | 9191在线观看| 天天夜夜操 | 91观看 | 91福利网址 | 亚洲va在线va天堂va狼色在线 | 毛片软件| 久久大全 | 久久狼人天堂 | 99re在线视频免费观看 | 日韩福利 | 亚洲精品久久久久久国产精华液 | 亚洲欧美精品国产一级在线 | 国产精品18久久久久久白浆动漫 | 国产精品污污视频 | 成年免费大片黄在线观看岛国 | 嫩草视频入口 | 国内自拍真实伦在线观看 | 亚洲精品久久久一区二区三区 | 第一福利社区1024 | 男女黄网站| 日本一二三区电影 | 成人精品一区二区户外勾搭野战 | a在线视频观看 | 国产精品一区二区免费 | 能看的av网站| 99亚洲综合 | 欧美成人高清 | 国产精品久久国产精品99 | 成人午夜电影网 | www日本在线观看 |