如何用图床服务存储图片?(python)

使用图床服务存储图片的步骤如下:

  1. 选择图床服务提供商
    常见的图床服务有 SM.MS、Imgbb、Postimage 等。选择时可以考虑服务稳定性、免费容量、上传速度等因素。

  2. 获取图床 API 密钥
    大多数图床服务都提供 API 接口,需要先注册账号并获取相应的 API 密钥。这个密钥用于授权应用程序访问图床服务。

  3. 上传图片到图床
    通常可以使用 HTTP POST 请求将图片数据上传到图床服务。可以把图片数据转换为 Base64 编码后上传,或者直接上传二进制数据。

     

    示例代码(使用 Python 和 requests 库):

     
    import requests
    import base64
    
    # 图片数据(Base64 编码)
    image_data = base64.b64encode(open('image.png', 'rb').read())
    
    # 图床 API 密钥
    api_key = 'your_api_key'
    
    # 请求头
    headers = {'Authorization': api_key}
    
    # 上传文件
    files = {'smfile': ('image.png', image_data)}
    url = 'https://sm.ms/api/v2/upload'
    response = requests.post(url, files=files, headers=headers)
    
    # 解析响应
    data = response.json()
    if data['success']:
        image_url = data['data']['url']
        print(f'Image uploaded successfully: {image_url}')
    else:
        print(f'Error uploading image: {data["message"]}')
    
  4. 将图片 URL 保存到数据库
    在应用程序中,将上传成功后返回的图片 URL 保存到数据库中,以便后续使用。

使用图床服务可以避免将图片数据直接存储在数据库中,减轻数据库的负担。同时,图床服务通常提供更好的图片管理和访问功能。不过需要注意的是,需要考虑图床服务的可靠性和长期可用性。

def create(self, value_list):
    for value in value_list:
        value['image_id'] = self.env['ir.sequence'].next_by_code('image')

        # 图床
        image_data = value['image']
        image_data = base64.b64decode(image_data)

        headers = {'Authorization': '???'}

        files = {'smfile': ('image.png', image_data)}
        url = 'https://sm.ms/api/v2/upload'
        res = requests.post(url, files=files, headers=headers).json()
        value['image_path'] = res['data']['url']
        print(res['data']['url'])
        print(value['image_path'])

        # 本地生成图片路径
        # base_path = 'bitpulse/tutor/images'
        # image_data = value['image']
        # timestamp = dat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值