• 七牛云覆盖上传?


    看了这么长时间《神秘的程序员》,看了这么久七牛的广告,一直没有抽时间实验一下用传说中的对象存储存图片。

    今天有机会,花半天试验了一下。

    随便注册了个个人的,免费,不用绑定域名,输入ip也可以。按照sdk,上传、下载、引用都没问题,但是在缓存刷新上卡了一下。

    主要问题,他的缓存机制,如果同样的key覆盖更新,一天只能更新500次,每次只能更新XX个key

    如果是用户头像之类需要经常更新的东西:不应该用同名key覆盖,而是每次对七牛产生唯一的uuid,删除旧uuid文件,上传新uuid文件

    就无关缓存问题了。

    ——主要还是没接触过缓存、cdn这些概念,对键值存储的用法不对。

    代码是测试用的分段乱写的 

    from qiniu import Auth, put_file,http
    import requests
    import json
    # 下载
    
    access_key = 'aaa'
    secret_key = 'bbb'
    q = Auth(access_key, secret_key)
    
    print(q)
    bucket_domain = 'ccc.bkt.clouddn.com'
    key = '2139614121.jpg'
    #有两种方式构造base_url的形式
    base_url = 'http://%s/%s' % (bucket_domain, key)
    
    #可以设置token过期时间
    private_url = q.private_download_url(base_url, expires=3600)
    print(private_url)
    r = requests.get(private_url)
    assert r.status_code == 200
    
    #上传:
    
    #要上传的空间
    bucket_name = 'ddd'
    #上传到七牛后保存的文件名 用户头像
    uid = 1
    key = '{0}_head'.format(uid)
    
    #生成上传 Token,可以指定过期时间等
    token = q.upload_token(bucket_name, key, 3600)
    #要上传文件的本地路径
    localfile = './static/img/3.jpg'
    ret, info = put_file(token, key, localfile)
    print(info)
    #assert ret['key'] == key
    #assert ret['hash'] == etag(localfile)
    
    #刷新七牛缓存,要对指定web_api发起请求,才会刷新缓存
    url = 'http://fusion.qiniuapi.com/v2/tune/refresh'
    data = {
       "urls": ['http://oz4pkhxf8.bkt.clouddn.com/1_head'],
        "dirls":[]
    }
    
    res = http._post_with_auth(url, data, q)
    print(res)
    
    #view中调用
    def view():
        #uid = user.id
        uid = 1
        key_image_qiniu = '{0}_head'.format(uid)
        # 有两种方式构造base_url的形式
        base_url = 'http://%s/%s' % (bucket_domain, key)
        private_url = q.private_download_url(base_url, expires=3600)
        print(private_url)
  • 相关阅读:
    react-navigation
    react
    generator-react-webpack
    安装Eclipse反编译插件(jadclipse)
    Python爬虫学习笔记3:基本库的使用
    Python爬虫学习笔记2:爬虫基础
    Python爬虫学习笔记1:request、selenium、ChromeDrive、GeckoDriver等相关依赖安装
    Python学习笔记28:面向对象进阶及 hashlib
    Python学习笔记27:反射,类的内置方法
    Python学习笔记26:封装、@property、@staticmethod和@classmethod装饰器方法、反射getattr()
  • 原文地址:https://www.cnblogs.com/xuanmanstein/p/7808799.html
Copyright © 2020-2023  润新知