使用cURL在Artifactory中存储/检索图像

使用cURL在Artifactory中存储/检索图像,curl,multipartform-data,artifactory,form-data,Curl,Multipartform Data,Artifactory,Form Data,我使用cURL将图像文件放入Artifactory服务器,如下所示: curl -u "username:pwd" -X PUT \ -F 'imageX=@/Users/me/my-images/cat.jpeg' \ http://maven.nabisco.com/artifactory/cdt-repo/folder/my-unique-file 当我从服务器下载文件时,它看起来像: --------------------------7c3eb0ea54288120 Content-

我使用cURL将图像文件放入Artifactory服务器,如下所示:

curl -u "username:pwd" -X PUT \
-F 'imageX=@/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编写文件?

如果我理解正确,您所要做的就是部署一个映像并稍后解析它。 您可以上载任何文件,而无需指定文件类型。在您的场景中,通过使用'-T'发送文件,命令甚至可以更简单,并且使用它您不必在artifactoryurl的末尾添加文件名。它将采用源文件的名称: curl-u“用户名:pwd”-T/Users/me/my images/cat.jpeg“”

关于文件的分辨率,您需要做的只是: curl-u“用户名:pwd”“”-O


(在末尾添加“-O”将确保cURL将文件保存为在远程服务器上命名的文件)

注意,Artifactory似乎不接受POST请求,只是PUTArtifactory也接受POST请求,但它通常用于更新而不是创建。请参见JFrog Artifactory REST API wiki页面:奇怪的是,POST用于更新,而PUT用于创建。。。!我在使用--data binary flag而不是-F方面取得了一些成功,我没有研究过-t flag…我认为Artifactory无法处理多部分数据,这是我最初面临的问题。我已经编辑了我的答案。我为部署留下了'-X PUT',实际上在使用'-T'时不需要它,所以上传命令应该是:curl-u“username:pwd”-T/Users/me/my images/cat.jpeg”“谢谢明天再看一看