zoukankan      html  css  js  c++  java
  • 阿里云 oss 服务 —— 上传图片,获取url

    oss服务:bucket中的图片,如果想不校验直接访问,需要设置bucket为公共读属性。

    在OSS中,操作的基本数据单元是文件(Object)。OSS Python SDK提供了丰富的文件上传方式:
    
    简单上传:文件最大不能超过5GB。
    追加上传:文件最大不能超过5GB。
    断点续传上传:支持并发、断点续传、自定义分片大小。大文件上传推荐使用断点续传。最大不能超过48.8TB。
    分片上传:当文件较大时,可以使用分片上传,最大不能超过48.8TB。
    
    # -*- coding: utf-8 -*-
    import datetime
    import shortuuid
    from linde import settings
    
    
    class Oss:
        """
        oss存储类
        上传bytes流,返回状态码和url
        """
    
        def __init__(self, access_key_id=settings.ACCESS_KEY_ID, access_key_secret=settings.ACCESS_KEY_SECRET,
                     endpoint=settings.ENDPOINT, bucket_name=settings.BUCKET_NAME):
            import oss2
            # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
            auth = oss2.Auth(access_key_id, access_key_secret)
            # Endpoint以杭州为例,其它Region请按实际情况填写。'http://oss-cn-hangzhou.aliyuncs.com'
            self.bucket = oss2.Bucket(auth, endpoint, bucket_name)
    
        def upload_bytes(self, file_bytes, image_name):
            """上传bytes文件"""
            result = self.bucket.put_object('{}'.format(image_name), file_bytes)
       
    
    oss_obj = Oss()
    
    # 上传后,可以访问的 url 的组成
    photo_name += '.jpg'
    domain = 'http://{}.{}/'.format(settings.BUCKET_NAME, settings.ENDPOINT)
    url_photo = domain + photo_name
    
    # ENDPOINT = 'oss-cn-shanghai.aliyuncs.com'
    # BUCKET_NAME = 'ai-gater'
    
  • 相关阅读:
    10.15
    10.14
    11.12
    10.10
    10.9
    如何向jar包里写文件
    mycat的配置文件
    启动spring boot打成的zip包脚本
    通俗易懂的rpc原理
    当Mockito遭遇使用注解注入的变量
  • 原文地址:https://www.cnblogs.com/pythonwl/p/14271173.html
Copyright © 2011-2022 走看看