我认为当我使用 ovh 对象存储(“类似于”AWS s3,但基于 openstack swift)时,我可以上传 jpg 图像,然后(因为我的容器是“公共(public)”)我可以从html 类似:
<img src="'https:pathtomycontainer/myTestImage.jpg'">
每个人都会很高兴。但是,当我将文件上传到 ovh 容器时,我可以通过 Horizon 终端看到它,它具有正确的名称,并且文件大小与 myTestImage.jpg 相同,但 img 元素引用无法按“应有的”方式工作。此外,当我将 myTestImage.jpg 从 ovh 容器下载到本地磁盘时,我无法打开它,因为它似乎不是有效的 jpg。这是怎么回事?
到目前为止,我的想法是 myTestImage.jpg 实际上不是 jpg,而是 application/x-www-form-urlencoded 文件...,但我该如何继续?
我的问题是:如何将 myTestImage.jpg 放入存储中并轻松地从(最好是 img-)html 元素引用它?
这些是对象的详细信息(此处“myTestImage.jpg”称为“myfile.jpg”):
我用 this uploader 上传了文件,但执行此 curl 时会得到类似的结果:
curl -X PUT --data @./222.jpg -H "X-Auth-Token: mysecretovhtoken" https://storage.gra1.cloud.ovh.net/v1/AUTH_myserviceID/containername/myfile.jpg
编辑:实际文件为 4.9Mb。当我用curl上传时,它变成了1.8Mb(再次下载时它仍然是1.8Mb)。使用 QUploader 时,它显示的大小为 4.66Mb,但当我下载文件时,它变成 4.9Mb(所以可能在服务器上进行了 gzip 压缩?!)。当我尝试打开它时,我收到此消息(抱歉,它有不同的名称,但处理是相同的):
最佳答案
你试过吗
curl --file-upload ./222.jpg -H "X-Auth-Token: mysecretovhtoken" https://storage.gra1.cloud.ovh.net/v1/AUTH_myserviceID/containername/myfile.jpg
然后您可以检查上述curl请求和您的上传过程之间的区别...
关于javascript - 上传到存储服务器时文件格式发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48790624/