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

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

时间:2025-01-16 10:53:56浏览次数:1  
标签:某字 tos 替换成 content TOS import ocr name

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 = 'AKLTMjI1MGJmMjAwN2Q1NGQyN2EzODM3NjFiMTcyNTgzNzU'
sk = 'WWpkaFpEUXhZek15WWpBeU5EWXhOemt5WWpFeU9XRTNNVFl6TXpGaVptUQ=='
endpoint = "tos-cn-beijing.volces.com"
region = "cn-beijing"
bucket_name = "livein-origin-data"

# 连接到 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}")

 

标签:某字,tos,替换成,content,TOS,import,ocr,name
From: https://www.cnblogs.com/wolvies/p/18674550

相关文章

  • Centos7.9安装kerberos
    @目录一、背景二、Kerberos安装部署2.1kerberos服务端必要软件安装2.2配置krb5.conf2.3配置kdc.conf2.4配置kadm5.acl2.5创建Kerberos数据库2.6启动Kerberos服务2.7创建Kerberos管理员principal2.8客户端安装kerberos2.9Kerberos功能验证本人其他相关文章链接一、背景亲测可用,......
  • centos 7 不用yum安装mysql80
    要在CentOS7上不使用yum安装MySQL8.0,可以使用RPM包进行安装。以下是详细的步骤:下载MySQL8.0的RPM包首先,需要下载MySQL8.0的RPM包。可以从MySQL官方网站下载,或者使用wget命令直接下载。以下是一个示例:wgethttps://dev.mysql.com/get/Downloads/MySQL-......
  • CentOS 7 - Could not resolve host: mirrorlist.centos.org; Unknown error
    CentOS7当运行yumupdate时,提示错误信息Couldnotresolvehost:mirrorlist.centos.org;UnknownerrorLoadedplugins:fastestmirror,ovlLoadingmirrorspeedsfromcachedhostfileCouldnotretrievemirrorlisthttp://mirrorlist.centos.org/?release=7&arch=x86......
  • 如何在CentOS中打开或放行指定端口
    在CentOS系统中,管理防火墙规则以开放或关闭特定端口是确保服务器安全性和功能正常运行的重要步骤。无论是为了部署Web服务、数据库访问还是其他网络应用,正确配置防火墙可以防止未经授权的访问,同时允许合法的流量通过。以下是详细的步骤和注意事项,帮助您在CentOS中安全地打开或关闭......
  • centos7离线升级内核
    1.升级说明1.1系统默认信息系统版本:CentOS7.8默认内核版本:3.10.0-1127.el7.x86_641.2升级内核目的部署k8s需要1.3k8s官方要求cpu:2核以上mem:2G以上内核:4.x以上1.4升级内核版本(永久支持)CentOS7.8内核升级为:5.4.278 2.下载内核包地址(centos7内核升级)https......
  • Centos7.9离线部署ceph(octopus)
    原创文档编写不易,未经许可请勿转载,目前仅发布于博客园,其他平台均为非法转载。文档中有疑问的可以邮件联系我文章。邮箱:yinwanit@163.com说明文档适用于cenots7.9操作系统下部署cephoctopus版本分布式存储使用。离线部署的本质是先基于在线环境如vmwareworkstation虚拟机在线......
  • RTOS_SDK-ESP8266环境搭建+独立按键
    本文针对ESP8266的RTOS_SDK开发编译流程出现的报错进行了一些解决,并且完成了按键控制LED功能环境准备硬件环境准备esp8266(焊接排针)独立按键杜邦线软件环境准备参考这位大佬:环境搭建教程ESP8266_RTOS_SDKAiThinkerIDE_V1.5.2注意事项出现mintty.exe报错......
  • centos7 2节点搭建mha
    配置主从同步:创建用于同步的用户:createuserrepl@'%'identifiedby'Admin@123';grantREPLICATIONCLIENT,REPLICATIONSLAVEon*.*torep@'%';创建用户mha连接的用户:CREATEUSER'mha'@'%'IDENTIFIEDWITHmysql_native_passwordB......
  • freertos的基础(二)内存管理:堆和栈
    1. 堆(Heap)定义堆是FreeRTOS中用于动态内存分配的内存区域。FreeRTOS提供了多种堆管理方案(如heap_1、heap_2、heap_4等),开发者可以根据需求选择合适的内存管理策略。作用用于动态分配内存,例如创建任务、队列、信号量等内核对象时,从堆中分配内存。堆的大小由开发者......
  • Adobe Photoshop(简称PS)专业的图像处理软件下载
    AdobePhotoshop软件简介AdobePhotoshop(简称PS)是由AdobeSystems开发的图像处理软件,自1988年首次发布以来,已成为业界标准。Photoshop广泛应用于平面设计、摄影、插图、网页设计以及视频编辑等多个领域。其强大的功能和灵活的操作使得用户能够对图像进行细致入微的编辑与创作......