zoukankan      html  css  js  c++  java
  • 05_树莓派图片定时上传到服务器

    1.准备图片存储服务器

    1.获取服务器

    选择七牛网作为服务器,因为它是一个免费的云图库

    七牛网地址:https://www.qiniu.com

    先要进行注册,之后,如图操作:

    创建储存空间

    获取秘钥:
    秘钥

    查询七牛的python调用API可知

    # -*- coding: utf-8 -*-
    # flake8: noqa
    from qiniu import Auth, put_file, etag, urlsafe_base64_encode
    import qiniu.config
    
    #获取图片
    os.system('raspistill -o current_photo.jpg')
    #需要填写你的 Access Key 和 Secret Key
    access_key = 'Access_Key'
    secret_key = 'Secret_Key'
    
    #构建鉴权对象
    q = Auth(access_key, secret_key)
    
    #要上传的空间
    bucket_name = 'Bucket_Name'
    
    #上传到七牛后保存的文件名
    key = 'my-python-logo.png';
    
    #生成上传 Token,可以指定过期时间等
    token = q.upload_token(bucket_name, key, 3600)
    
    #要上传文件的本地路径
    localfile = './sync/bbb.jpg'
    ret, info = put_file(token, key, localfile)
    print(info)
    
    assert ret['key'] == key
    assert ret['hash'] == etag(localfile)
    
    

    2.安装七牛的Python SDK

    # 1.第一种方法
    pip install qiuiu
    # 2.第二种方法 https://github.com/qiniu/python-sdk
    git clone https://github.com/qiniu/python-sdk.git
    

    3.制作脚本文件

    touch get_photo.sh
    # 内容
    /usr/bin/python2.7 /home/pi/project/get_picture.py
    
    touch get_picture.py
    
    '''
    上传photo文件夹内的所有文件,上传成功后删除文件
    '''
    # -*- coding: utf-8 -*-
    import time
    from qiniu import Auth, put_file, etag, urlsafe_base64_encode
    import qiniu.config
    import os
    
    filelist = os.listdir('./photo')
    for file in filelist:
    	#需要填写你的 Access Key 和 Secret Key
        access_key = 'TRF-90q0b7eLubaOVj7UZcm_-m6pmuuqqyDBVp2w' #这里的密钥填上刚才我让你记住的密钥对
        secret_key = 'LqUocAThm28PJVafoSLOHEPPpUxXgQNJ5ePlxWPW' #这里的密钥填上刚才我让你记住的密钥对
        
        #构建鉴权对象
        q = Auth(access_key, secret_key)
    	
    	#要上传的空间
        bucket_name = 'wml-raspberrypi'
    	
    	#上传到七牛后保存的文件名
        key = '%s_%s_%s_%s_%s_%s.jpg'%(time.localtime()[0],time.localtime()[1],time.localtime()[2],time.localtime()[3],time.localtime()[4],time.localtime()[5])
    
    	#生成上传 Token,可以指定过期时间等
        token = q.upload_token(bucket_name, key, 3600)
    	
    	#要上传文件的本地路径
        localfile = './photo/'+file
        ret,info = put_file(token, key, localfile)
        print('complete upload:',localfile)
        time.sleep(10)
        os.remove(localfile)
        print('complete romove:',localfile)
    

    4.定时启动脚本

    crontab -e
    #选择vim进入,到末尾输入 o
    #然后在末尾加入
    10 15 * * * sh /home/pi/project/get_photo.sh /home/
    #然后按Esc->:wq->换行退出
    #最后重启cron
    sudo service cron restart
    

    5. 参考资料

    1. https://blog.csdn.net/qq_34202873/article/details/78762674
  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 黑色星期五
    Java实现 蓝桥杯VIP 算法训练 比赛安排
    Java实现 蓝桥杯VIP 算法训练 比赛安排
    Java实现 蓝桥杯VIP 算法训练 斜率计算
    Java实现 蓝桥杯VIP 算法训练 斜率计算
    Java实现 蓝桥杯VIP 算法训练 整数平均值
    Java实现 蓝桥杯VIP 算法训练 整数平均值
    控件动态产生器(使用RegisterClasses提前进行注册)
    Delphi编写自定义控件以及接口的使用(做了一个TpgDbEdit)
    Log4delphi使用心得
  • 原文地址:https://www.cnblogs.com/wml1994/p/11782232.html
Copyright © 2011-2022 走看看