异步并发

# python3.*
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
bucket = oss2.Bucket(auth, '<https://oss-cn-hangzhou.aliyuncs.com>', 'qq')

async def save_to_oss_async(bucket, base_url, image, file_name):
    in_mem_file = io.BytesIO()
    image.save(in_mem_file, format='PNG')
    in_mem_file.seek(0)
    await asyncio.to_thread(bucket.put_object, f"{base_url}/{file_name}.png", in_mem_file)

async def save_segment_info_to_oss_async(image, mask, result_image):
    """
    保存分割信息到 OSS
    """
    # 生成唯一 ID
    # 获取当前日期
    current_date = datetime.now()
    year = current_date.year
    month = current_date.month
    day = current_date.day

    # 生成唯一ID
    unique_id = uuid.uuid4()
    # 获取时分秒
    hour = current_date.hour
    minute = current_date.minute
    second = current_date.second
    # 上传文件到 OSS
    base_url = f"a/b/c/{year}-{month}-{day}/{year}{month}{day}{hour}{minute}{second}{unique_id}"
    # 创建任务列表
    tasks = [
        save_to_oss_async(bucket, base_url, image, "image"),
        save_to_oss_async(bucket, base_url, mask, "mask"),
        save_to_oss_async(bucket, base_url, result_image, "result")
    ]
    # 等待所有任务完成
    await asyncio.gather(*tasks)

# 保存图片到 oss
asyncio.run(save_segment_info_to_oss_async(image, mask, result_image))