gpt4 book ai didi

riak - 如何将图像存储到 riak 并从 riak 获取图像?

转载 作者:行者123 更新时间:2023-11-30 23:49:03 28 4
gpt4 key购买 nike

在我现在的项目中,我需要将一些图像存储到 Riak,然后从 Riak 获取它们并在 HTML 页面中显示它们。

这是我封装的一个API:

//inputstream is a stream of an image
byte[] imageContent = IOUtils.toByteArray(inputStream);
String descriptiveId = null;
String storedImageId = UUID.randomUUID().toString();
BlobContent blobContent = new BlobContent(imageContent,descriptiveId);
riakBlobDAO.create(storedImageId,blobContent);

.....

//get the byte[] from riak by the uuid
BlobContent returnedBlobContent = riakBlobDAO.get(storedImageId);
byte[] returnedImageContent = returnedBlobContent.getData();

如果我调用这个方法,它会返回某物,但是对于这个<img src="xxxx"> ,我不能从返回的 sth 中获取 src,还有其他解决方案吗?

我知道 riak 中存储的图像是二进制字节,但我很困惑如何从 riak 中获取它并在 HTML 页面中显示它。

我知道<img src="xxxx" /> ,但是如果图像存储在 Riak 中,我可以生成图像 url 吗?

最佳答案

如果我对您的问题的理解正确,那么您正在将图像数据作为 BLOB 存储在 Riak 中并进行检索。有了这个存储的 BLOB,如果您尝试检索它并在 HTML 中执行类似这样的操作:

<img src="*<...retrieved BLOB data...>*" /img>

那么它不一定有效。理想的方法是将此 BLOB 另存为具有适当扩展名的文件(可能是/tmp 中的临时文件),然后在 HTML 中使用相同的路径。

另外,如果您的图像的 BLOB 格式是 HTML5 下较新的浏览器支持的格式,那么您也可以使用以下格式直接传递数据:

<img src="data:image/png;base64, ....." />

这里有更多信息:Embedding Base64 Images

尽管如此,请注意上述方式在不同浏览器上的行为有所不同。

关于riak - 如何将图像存储到 riak 并从 riak 获取图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28357955/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com