偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Artipie:可用于 Python 的開(kāi)源倉(cāng)庫(kù)管理器

開(kāi)源
Artipie 是一個(gè)開(kāi)源的自托管的倉(cāng)庫(kù)管理器,它不僅可以用于 Python。

在學(xué)生時(shí)代使用 Python 開(kāi)發(fā)時(shí),我發(fā)現(xiàn)我需要一些私人的集中存儲(chǔ)。這樣我就可以存儲(chǔ)二進(jìn)制和文本數(shù)據(jù)文件,以及 Python 軟件包。我在 ??Artipie?? 中找到了答案,這是一個(gè)開(kāi)源的自托管的軟件倉(cāng)庫(kù)管理器。

在大學(xué)里,我和我的同事們對(duì)來(lái)自實(shí)驗(yàn)測(cè)量的大量數(shù)據(jù)進(jìn)行研究。我使用 Python 來(lái)處理和可視化它們。當(dāng)時(shí)我的大學(xué)同事是數(shù)學(xué)家,沒(méi)有軟件開(kāi)發(fā)技術(shù)的經(jīng)驗(yàn)。他們通常只是在閃存盤(pán)上或通過(guò)電子郵件傳遞數(shù)據(jù)和代碼。我努力向他們介紹像 ??Git?? 這樣的版本管理系統(tǒng),但沒(méi)有成功。

Python 倉(cāng)庫(kù)

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

要?jiǎng)?chuàng)建你自己的 Python 倉(cāng)庫(kù),你可以使用名為 ??Artipie Central?? 的 Artipie 托管實(shí)例。當(dāng)你登錄后,你會(huì)看到一個(gè)列出你的倉(cāng)庫(kù)的頁(yè)面(開(kāi)始時(shí)是空的),以及一個(gè)添加新倉(cāng)庫(kù)的表單。為你的新倉(cāng)庫(kù)選擇一個(gè)名字(例如,??mypython??),選擇 ??Python?? 作為倉(cāng)庫(kù)類(lèi)型,然后點(diǎn)擊 “添加Add” 按鈕。

接下來(lái),你會(huì)看到一個(gè)以 ??YAML?? 格式顯示倉(cāng)庫(kù)設(shè)置的頁(yè)面:

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

配置中的 ??type?? 映射設(shè)置了倉(cāng)庫(kù)的類(lèi)型。在這個(gè)例子中,Python 倉(cāng)庫(kù)被配置為默認(rèn)的 Artipie Central 存儲(chǔ)。

??storage?? 映射定義了所有倉(cāng)庫(kù)包的存儲(chǔ)位置。這可以是任何文件系統(tǒng)或 S3 存儲(chǔ)兼容的位置。Artipie Central 有一個(gè)預(yù)先配置的 ??default?? 存儲(chǔ),可以使用它進(jìn)行測(cè)試。

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

為了確保這個(gè)倉(cāng)庫(kù)的存在和工作,在你的瀏覽器中打開(kāi) ??索引頁(yè)??。顯示的是軟件包列表。如果你剛剛創(chuàng)建了一個(gè)新的版本庫(kù),但還沒(méi)有上傳軟件包,那么倉(cāng)庫(kù)的索引頁(yè)是空白的。

二進(jìn)制倉(cāng)庫(kù)

你可以在 Artipie 中存儲(chǔ)任何種類(lèi)的文件。存儲(chǔ)類(lèi)型是 ??file?? 或 ??binary??,我用這個(gè)作為實(shí)驗(yàn)數(shù)據(jù)的存儲(chǔ)。我把它作為 Python 可視化的輸入。在 Artipie Central 可以創(chuàng)建一個(gè)文件倉(cāng)庫(kù),與 Python 倉(cāng)庫(kù)的方式相同。你給它一個(gè)名字,選擇 ??binary?? 類(lèi)型,然后點(diǎn)擊 “添加Add” 按鈕。

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

這些設(shè)置基本上與 Python 相同。只有倉(cāng)庫(kù)的類(lèi)型不同。在這個(gè)例子中,二進(jìn)制倉(cāng)庫(kù)被稱(chēng)為 ??data??。它包含三個(gè)帶有一些數(shù)字的文本文件:

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

另外兩個(gè)文件的形式相同(只是數(shù)字不同)。要想自己看這些文件,請(qǐng)?jiān)跒g覽器中打開(kāi)鏈接 ??一??、??二?? 和 ??三?? 并下載文件,或者你可以用 ??httpie?? 執(zhí)行 GET 請(qǐng)求:

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

這些文件是用 PUT 請(qǐng)求上傳到 Artipie Central 的 ??data?? 存儲(chǔ)庫(kù)的:

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

由于這個(gè)二進(jìn)制倉(cāng)庫(kù)的 API 非常簡(jiǎn)單(HTTP ??PUT?? 和 ??GET?? 請(qǐng)求),用任何語(yǔ)言編寫(xiě)一段代碼來(lái)上傳和下載所需的文件都很容易。

Python 項(xiàng)目

可以從我的 ??GitHub 倉(cāng)庫(kù)??中獲得一個(gè) Python 項(xiàng)目的示例源代碼。這個(gè)示例的主要想法是,從 Artipie Central 下載三個(gè)數(shù)據(jù)文件,將數(shù)字讀入數(shù)組,并使用這些數(shù)組來(lái)繪制一個(gè)圖。使用 ??pip?? 來(lái)安裝這個(gè)例子包并運(yùn)行它:

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

通過(guò)設(shè)置 ??--index-url?? 到 Artipie Central 的 Python 倉(cāng)庫(kù),??pip?? 從它那里下載軟件包,而不是通常默認(rèn)的 PyPi 倉(cāng)庫(kù)。運(yùn)行這些命令后,會(huì)顯示一個(gè)帶有三條曲線的極坐標(biāo)圖,這是數(shù)據(jù)文件的可視化。

要將軟件包發(fā)布到 Artipie Central 倉(cāng)庫(kù),請(qǐng)用 ??twine?? 構(gòu)建并上傳:

commandline
$ python setup.py sdist bdist_wheel

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

在 Artipie Central 中設(shè)置 ??files?? 倉(cāng)庫(kù),并創(chuàng)建一個(gè) Python 示例項(xiàng)目是多么容易。不過(guò),你不必使用 Artipie Central。Artipie 可以自托管,所以你可以在你自己的本地網(wǎng)絡(luò)上運(yùn)行一個(gè)倉(cāng)庫(kù)。

將 Artipie 作為一個(gè)容器運(yùn)行

將 Artipie 作為一個(gè)容器運(yùn)行,設(shè)置起來(lái)就像安裝 Podman 或 Docker 一樣容易。假設(shè)你已經(jīng)安裝了其中之一,打開(kāi)終端:

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

這將啟動(dòng)一個(gè)運(yùn)行最新 Artipie 版本的新容器。它還映射了兩個(gè)端口。你的倉(cāng)庫(kù)在 8080 端口提供服務(wù)。Artipie 的 Rest API 和 Swagger 文檔在 8086 端口提供。新的鏡像會(huì)生成一個(gè)默認(rèn)的配置,打印一個(gè)正在運(yùn)行的倉(cāng)庫(kù)列表,測(cè)試證書(shū),以及一個(gè)指向 ??Swagger?? 文檔的鏈接到你的控制臺(tái)。

你也可以使用 Artipie Rest API 來(lái)查看現(xiàn)有的倉(cāng)庫(kù):

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

Image of the Swagger documentation page,

Image of the Swagger documentation page,

對(duì) ??/api/v1/repository/list?? 執(zhí)行一個(gè) GET 請(qǐng)求。在響應(yīng)中,你會(huì)收到一個(gè)包含三個(gè)默認(rèn)倉(cāng)庫(kù)的 JSON 列表:

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

默認(rèn)配置中不包括 Python 倉(cāng)庫(kù)。你可以通過(guò)從 Swagger 接口向 ??/api/v1/repository/{user}/{repo}?? 執(zhí)行 PUT 請(qǐng)求來(lái)糾正。在這種情況下,??user?? 是默認(rèn)用戶的名字(??artipie??),??repo?? 是新倉(cāng)庫(kù)的名字。你可以把你的新 Python 代碼庫(kù)稱(chēng)為 ??my-pypi??。下面是一個(gè)請(qǐng)求體的例子,包含帶倉(cāng)庫(kù)設(shè)置的 JSON 對(duì)象:

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

所有的 JSON 字段都和你在儀表板上創(chuàng)建 YAML 格式的倉(cāng)庫(kù)時(shí)一樣。我們版本庫(kù)的類(lèi)型是 ??pypi??,使用默認(rèn)存儲(chǔ),任何人都可以下載,但只有用戶 ??artipie?? 可以上傳。

再次向 ??/api/v1/repository/list?? 發(fā)出 GET 請(qǐng)求,確保你的倉(cāng)庫(kù)被創(chuàng)建?,F(xiàn)在,你有四個(gè)倉(cāng)庫(kù):

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

你已經(jīng)創(chuàng)建了你自己的 Artipie 安裝,包含了幾個(gè)倉(cāng)庫(kù)! Artipie 鏡像既可以在個(gè)人電腦上運(yùn)行,也可以在私人網(wǎng)絡(luò)內(nèi)的遠(yuǎn)程服務(wù)器上運(yùn)行。你可以用它來(lái)在一個(gè)公司、團(tuán)體或大學(xué)內(nèi)交換軟件包。這是一個(gè)建立你自己的軟件服務(wù)的簡(jiǎn)單方法,而且它不僅僅適用于 Python?;ㄐr(shí)間來(lái)探索 Artipie,看看它能為你帶來(lái)什么。

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2020-09-29 16:49:41

開(kāi)源密碼管理器互聯(lián)網(wǎng)

2012-04-20 14:44:11

JavaScript

2018-05-02 09:00:26

開(kāi)源 Web 服務(wù)器

2022-07-11 07:31:12

massCode開(kāi)源工具

2014-02-24 15:26:39

開(kāi)源文件管理器

2013-12-11 09:47:35

NetflixAWSIaaS

2010-10-08 09:26:17

.NET微軟

2022-08-09 18:00:26

開(kāi)源密碼管理器Padloc

2020-04-15 19:31:59

Bitwarden開(kāi)源密碼管理器

2016-12-23 17:20:56

2009-06-17 08:41:45

Windows 7微軟操作系統(tǒng)

2023-10-22 08:44:06

2022-07-14 16:18:32

massCode開(kāi)源

2010-12-28 14:53:29

服務(wù)器管理器

2021-11-15 14:42:20

Motrix下載管理器開(kāi)源

2020-09-23 06:21:44

KeePassXC密碼管理器開(kāi)源

2023-11-25 17:17:06

2025-06-06 08:00:00

上下文管理器Python開(kāi)發(fā)

2009-03-06 15:27:10

LinuxUbuntuBlueman

2012-04-23 10:49:04

AWTJava
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)