遇事不决,可问春风,春风不语,谨遵本心|

布都御魂

园龄:3年9个月粉丝:2关注:1

把MongoDB数据库里某字段的内容上传到tos,并把原内容替换成tos链接

import logging
from io import BytesIO
import tos
from urllib.parse import quote_plus
import pymongo

# 设置日志格式
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

# MongoDB 连接配置
# mongo_uri = "mongodb://localhost:27017"
db_name = "spider"
collection_name = "analyzed_books"

# TOS 连接配置
ak = ''
sk = ''
endpoint = ""
region = ""
bucket_name = ""

# 连接到 MongoDB
client = pymongo.MongoClient(mongo_uri)
db = client[db_name]
collection = db[collection_name]

# 获取所有文档
results = list(collection.find())

print(f'analyzed_books需要修改的数据数量:{len(list(results))}')
for doc in results:
    print(doc)
    book_id = doc['_id']
    ocr_content = doc['ocr_content']

    # 创建一个 BytesIO 对象,用于模拟文件内容
    content = BytesIO(ocr_content.encode('utf-8'))

    # 生成 TOS 对象的键
    object_key = f"books/{book_id}.md"

    # 创建 TOS 客户端
    client = tos.TosClientV2(ak, sk, endpoint, region)

    try:
        # 上传到 TOS
        client.put_object(bucket_name, object_key, content=content)

        # 生成 TOS 对象的公共链接
        tos_url = f"https://{bucket_name}.{endpoint}/{object_key}"

        # 更新 MongoDB 文档,将 ocr_content 替换为 TOS 链接
        collection.update_one({'_id': book_id}, {'$set': {'ocr_content': tos_url}})

        logging.info(f"更新后的数据: {tos_url}\n")
    except Exception as e:
        logging.error(f"更新失败: {e}")

 

本文作者:布都御魂

本文链接:https://www.cnblogs.com/wolvies/p/18674550

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   布都御魂  阅读(24)  评论(0编辑  收藏  举报
   
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起