gpt4 book ai didi

fiware - 从 img 标签引用存储在对象存储容器 (Wirecloud) 中的图像

转载 作者:行者123 更新时间:2023-12-02 07:14:33 25 4
gpt4 key购买 nike

我们想要开发一个小部件来将图像上传到容器。这是一项有据可查的任务:

1.- Object Storage Tutorial

2.- Fireware-Wiki

3.- OpenStack Object Storage Docs (Swift)

有了这一切,您就可以设法获取(下载)、上传、删除容器中的文件。这个就比较清楚了。

另一方面,我们想开发另一个小部件来显示存储在容器中的图像。我想用这样的方式向他们展示:

<img src="public_object_url"/>

但我不知道该怎么做。我从哪里获得这个公共(public) URL?有公共(public)网址吗?是在上传过程中的某个步骤吗?

我有点不知道该怎么做。任何帮助将不胜感激。

提前致谢。

编辑 1

下载图像后,我们会被阻止显示图像。

enter image description here

查看“img”标签内部可以看出:

enter image description here

URL.createObjectURL() 返回的字符串是什么。如果我们查看此链接,浏览器会显示以下内容:

enter image description here

我们已经解码了属性“value”中的字符串,并且图像就在那里!

为了从对象存储服务器获取图像,我们使用了与运算符 Álvaro 推荐的代码非常相似的代码。

objectstorage.getFile(  containerName,
reports[i].urlImagen,{
token: token,
onSuccess: onGetFileSuccess.bind(null, i),
onFailure: onGetFileFailure
});




function onGetFileSuccess(index, picture){
downloadedPicsCont--;
reports[index].urlImagen = URL.createObjectURL(picture);
if(!(downloadedPicsCont > 0)){
MashupPlatform.wiring.pushEvent('reports_output', JSON.stringify(reports));
}

}

图片变量具有以下结构,看起来也可以。

enter image description here

这是怎么回事?

编辑2

终于找到原因了。我们下载的是直接从云端创建的图像,而不是使用 objectStorageAPI。在从云上传图像时,当您下载它们时,您会将它们放入 cdmi 对象中,因此 URL.createObjectURL 不会按预期工作。另一方面,如果您使用 objectStorageAPI 上传它们,那么下载它们时,它们会以原始格式出现,因此该方法可以正常工作。

最佳答案

据我所知,FIWARE对象存储需要身份验证,因此没有这样的公共(public)URL。但是...您可以使用您的凭据下载图像,然后使用 URL.createObjectURL用于获取可在 img 元素的 src 属性中使用的 URL 的方法。

有点旧了,但是你可以用这个operator作为引用。

关于fiware - 从 img 标签引用存储在对象存储容器 (Wirecloud) 中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32069097/

25 4 0