Fiware 从img标记引用存储在对象存储容器(Wirecloud)中的图像

Fiware 从img标记引用存储在对象存储容器(Wirecloud)中的图像,fiware,fiware-wirecloud,Fiware,Fiware Wirecloud,我们想开发一个小部件,将图像上传到容器中。这是一项记录非常充分的任务: 1.- 2.- 3.- 通过所有这些,您可以在容器中获取(下载)、上载和删除文件。这是比较清楚的 另一方面,我们希望开发另一个小部件来显示存储在容器中的图像。我想用这样的方式向他们展示: <img src="public_object_url"/> } picture变量具有以下结构,似乎也可以 发生了什么事 编辑2 最后,我们找到了原因。我们下载的图像是直接从云中创建的,而不是使用objectStorage

我们想开发一个小部件,将图像上传到容器中。这是一项记录非常充分的任务:

1.-

2.-

3.-

通过所有这些,您可以在容器中获取(下载)、上载和删除文件。这是比较清楚的

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

<img src="public_object_url"/>
}

picture变量具有以下结构,似乎也可以

发生了什么事

编辑2


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

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


虽然有点旧,但您可以将其作为参考。

非常感谢您的支持。我将尝试它并返回结果:)
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));
}