gpt4 book ai didi

mongodb - MongoDB中通过ObjectId而不是image_name获取图像

转载 作者:行者123 更新时间:2023-12-02 11:42:54 26 4
gpt4 key购买 nike

在我的 Flask 应用程序中,我尝试检索存储在 MongoDB GridFS 中的图像。然而,我能找到的唯一工具是 mongo.send_file(filename) ,而且这个函数似乎只支持使用文件名获取图像。

由于我有不同的同名图像,我想知道是否有办法使用图像文件的唯一 ObjectId 来检索图像?

最佳答案

我也一直在处理这个问题。我修改了 Flask API 上的 send_file 函数。看看我在这里做了什么:

from flask import current_app, request
from werkzeug.wsgi import wrap_file

from bson.objectid import ObjectId
from gridfs import GridFS, NoFile


def retrieve_image(file_id, mongo):
storage = GridFS(mongo.db, "fs")

try:
fileobj = storage.get(file_id=ObjectId(file_id))
except NoFile:
#404
print()

# mostly copied from flask/helpers.py, with
# modifications for GridFS
data = wrap_file(request.environ, fileobj, buffer_size=1024 * 255)
response = current_app.response_class(
data,
mimetype=fileobj.content_type,
direct_passthrough=True,
)
response.content_length = fileobj.length
response.last_modified = fileobj.upload_date
response.set_etag(fileobj.md5)
response.cache_control.max_age = 31536000
response.cache_control.public = True
response.make_conditional(request)
return response

Mongo中的函数就是flask_pymongo对象。如果我能解决任何问题,请告诉我!

关于mongodb - MongoDB中通过ObjectId而不是image_name获取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58278791/

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