2017-07-18 65 views
0

我使用捲曲到圖像文件放到一個Artifactory的服務器,就像這樣:存儲/檢索Artifactory的圖像捲曲

curl -u "username:pwd" -X PUT \ 
-F '[email protected]/Users/me/my-images/cat.jpeg' \ 
http://maven.nabisco.com/artifactory/cdt-repo/folder/my-unique-file 

當我從服務器下載文件時,它看起來像:

--------------------------7c3eb0ea54288120 
Content-Disposition: form-data; name="image"; filename="cat_cat_cat.jpeg" 
Content-Type: image/jpeg 

ˇÿˇ‡JFIFˇ€Ñ (%!1"%)+...383-7(-.+ 
...yadda yadda yadda 

據我所知,它將所有表單數據保存到Artifactory服務器上,而不僅僅是表單數據中的一個文件。

所以三個問題 -

(a)是有一些方法來告訴服務器剛剛從表單數據的一個文件中存儲的原始數據? (b)如果我使用cURL從服務器下載數據,是否有某種方法可以從表單數據中提取圖像數據,如果我知道表單的關鍵字(在這種情況下,關鍵字是「imageX」 )?

(c)有沒有辦法用cURL寫一個文件而不使用form-data?

+0

請注意,Artifactory似乎不接受POST請求,只是PUT –

+1

Artifactory也接受POST請求,但它通常用於更新而不用於創建。請參閱JFrog Artifactory REST API wiki頁面: https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API – Ariel

+1

奇怪的是,POST用於更新,而PUT用於創建......! –

回答

1

如果我正確理解你,你所要做的就是部署一張圖片並在以後解決。 您可以上傳任何文件,而無需指定文件的類型。在你的場景中,通過使用'-T'發送文件,該命令甚至可以變得更簡單,並且使用它你不必在Artifactory URL的末尾添加文件名。這將需要原始文件的名稱: 捲曲-U「用戶名:密碼」 -T /Users/me/my-images/cat.jpeg「http://maven.nabisco.com/artifactory/cdt-repo/folder/

關於文件的分辨率,所有你需要的要做的是: curl -u「username:pwd」「http://maven.nabisco.com/artifactory/cdt-repo/folder/cat.jpeg」-O

(在末尾添加'-O'將確保cURL將保存文件,因爲它在遠程服務器上被命名)

+0

我用--data-binary標誌取得了一些成功,而不是-F,我沒有看到-T標誌......我不認爲Artifactory可以處理多部分數據,這是我最初面臨的問題。 –

+1

我編輯了我的答案。我留下了用於部署的'-X PUT',實際上在使用'-T'時不需要使用'-X' 因此,上傳命令應該是: curl -u「username:pwd」-T/Users/me/my -images/cat.jpeg「http://maven.nabisco.com/artifactory/cdt-repo/folder/」 – Ariel

+0

謝謝,明天再來看看 –