<oss2.models.PutObjectResult object at 0x7f7928d0b240>

# -*- coding: utf-8 -*-
import oss2
oss_key = ['LTAINInNd1ryh0gt', 's6Kta34KkwPdvvvyP1Rk8BOV1UBeUk', 'oss-cn-shenzhen-internal.aliyuncs.com']
yourAccessKeyId, yourAccessKeySecret, endpoint = oss_key
yourBucketName = 'test-archive'
# # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
auth = oss2.Auth(yourAccessKeyId, yourAccessKeySecret)
# # Endpoint以杭州为例,其它Region请按实际情况填写。
bucket = oss2.Bucket(auth, endpoint, yourBucketName) import sys, glob, os kind, dir_, ip = sys.argv[1], sys.argv[2], sys.argv[3] file_feature = '*-*-*'
dir_ = dir_ + file_feature
logicPath = 'log/{}/birthplaceIp{}/'.format(kind, ip)
LocalFiles = glob.glob(dir_)
for i in LocalFiles:
print(i)
ii = i.split(os.sep)[-1]
objectName = '{}{}'.format(logicPath, ii)
r = bucket.put_object_from_file(objectName, i)
print(r)

  

【2018年12月29日 09:45:56,xiaole】

1、数据说明

备份2类文件:云盟广告数据源原始文件、广告详情页访客数据源原始文件,依次
备份在test-archive/testlog/{yunmeng,detailPage}/逻辑目录;

1-1、逻辑目录

原始文件所在的公网ip地址
59.120.16.204,
59.120.11.14,
101.21.46.230,
,相应建立逻辑目录,例如test-archive/testlog/{yunmeng,detailPage}/birthplaceIp59.110.16.204;

1-2、数据大小

相应1-1中ip顺序2类文件大小:
132、18,
95、15,
132、18,
单位G,日期为2018-09-18至今日,

示例:
[root@a ~]# ll -ash /data/uniontestlog/
total 132G
20K drwxr-xr-x 2 nginx nginx 20K Dec 29 00:00 .
4.0K drwxr-xr-x 14 root root 4.0K Dec 10 11:00 ..
963M -rw-r--r-- 1 nginx nginx 963M Sep 18 23:59 visit-2018-09-18
1.3G -rw-r--r-- 1 nginx nginx 1.3G Sep 19 23:59 visit-2018-09-19
1.2G -rw-r--r-- 1 nginx nginx 1.2G Sep 20 23:59 visit-2018-09-20
[root@a ~]# ll -ash /data/visittestlog/
total 18G
20K drwxr-xr-x 2 nginx nginx 20K Dec 29 00:00 .
4.0K drwxr-xr-x 14 root root 4.0K Dec 10 11:00 ..
48M -rw-r--r-- 1 nginx nginx 48M Sep 18 23:59 visit-2018-09-18
66M -rw-r--r-- 1 nginx nginx 66M Sep 19 23:59 visit-2018-09-19
64M -rw-r--r-- 1 nginx nginx 64M Sep 20 23:59 visit-2018-09-20
68M -rw-r--r-- 1 nginx nginx 68M Sep 21 23:59 visit-2018-09-21

单日文件,大小实时递增;

2、费用相关

2-1、存储类型选择

参考
2-1、阿里云存储类型选择说明
存储类型介绍_存储类型_开发指南_对象存储 OSS-阿里云 https://help.aliyun.com/document_detail/51374.html?spm=a2c4g.11186623.2.13.75a465d3dgp2Sb#concept-fcn-3xt-tdb
归档存储类型(Archive)
OSS归档存储类型在三种存储类型中单价最低,适合需要长期保存(建议半年以上)的归档数据,在存储周期内极少被访问,数据进入到可读取状态需要1分钟的解冻时间。
选择
归档存储类型(Archive);

2-2、费用计算

参考
计费案例_计费方式_计量计费_对象存储 OSS-阿里云 https://help.aliyun.com/document_detail/48293.html?spm=a2c4g.11186623.6.556.32901751otd0Eh

存储费用:0.148(存储单价:元/GB/月) * 1024(存储量:GB) = 151.55 元/月
流量费用:0.5(外网流出流量忙时单价:元/GB)* 2048 (流量:GB) = 1024 元/月
请求费用:0.01(请求费用单价:元/万次)* 1500 = 15 元/月
总费用:1190.55 元/月

本存储中,1024GB月oss费用总计约150元;

2-3、存储区域

华南(1)深圳

3、维护相关

3-1、数据写入

3-1-1、视情况追加新日期的数据,注意追加时要覆盖oss中最晚的文件;
3-1-2、视情况删除;

3-2、数据读取
尽量通过阿里内网访问;

py36\Lib\site-packages\oss2\api.py

    def put_object_from_file(self, key, filename,
headers=None,
progress_callback=None):
"""上传一个本地文件到OSS的普通文件。 :param str key: 上传到OSS的文件名
:param str filename: 本地文件名,需要有可读权限 :param headers: 用户指定的HTTP头部。可以指定Content-Type、Content-MD5、x-oss-meta-开头的头部等
:type headers: 可以是dict,建议是oss2.CaseInsensitiveDict :param progress_callback: 用户指定的进度回调函数。参考 :ref:`progress_callback` :return: :class:`PutObjectResult <oss2.models.PutObjectResult>`
"""
headers = utils.set_content_type(http.CaseInsensitiveDict(headers), filename) with open(to_unicode(filename), 'rb') as f:
return self.put_object(key, f, headers=headers, progress_callback=progress_callback) def put_object(self, key, data,
headers=None,
progress_callback=None):
"""上传一个普通文件。 用法 ::
>>> bucket.put_object('readme.txt', 'content of readme.txt')
>>> with open(u'local_file.txt', 'rb') as f:
>>> bucket.put_object('remote_file.txt', f) :param key: 上传到OSS的文件名 :param data: 待上传的内容。
:type data: bytes,str或file-like object :param headers: 用户指定的HTTP头部。可以指定Content-Type、Content-MD5、x-oss-meta-开头的头部等
:type headers: 可以是dict,建议是oss2.CaseInsensitiveDict :param progress_callback: 用户指定的进度回调函数。可以用来实现进度条等功能。参考 :ref:`progress_callback` 。 :return: :class:`PutObjectResult <oss2.models.PutObjectResult>`
"""
headers = utils.set_content_type(http.CaseInsensitiveDict(headers), key) if progress_callback:
data = utils.make_progress_adapter(data, progress_callback) if self.enable_crc:
data = utils.make_crc_adapter(data) resp = self.__do_object('PUT', key, data=data, headers=headers)
result = PutObjectResult(resp) if self.enable_crc and result.crc is not None:
utils.check_crc('put', data.crc, result.crc) return result py36\Lib\site-packages\oss2\models.py class PutObjectResult(RequestResult):
def __init__(self, resp):
super(PutObjectResult, self).__init__(resp) #: HTTP ETag
self.etag = _get_etag(self.headers) #: 文件上传后,OSS上文件的CRC64值
self.crc = _hget(resp.headers, 'x-oss-hash-crc64ecma', int)

  

 

源码 <oss2.models.PutObjectResult object at 0x7f7928d0b240>的更多相关文章

  1. JDK1.8源码阅读笔记(1)Object类

    JDK1.8源码阅读笔记(1)Object类 ​ Object 类属于 java.lang 包,此包下的所有类在使⽤时⽆需⼿动导⼊,系统会在程序编译期间⾃动 导⼊.Object 类是所有类的基类,当⼀ ...

  2. JDK1.8源码(一)——java.lang.Object类

    本系列博客将对JDK1.8版本的相关类从源码层次进行介绍,JDK8的下载地址. 首先介绍JDK中所有类的基类——java.lang.Object. Object 类属于 java.lang 包,此包下 ...

  3. JVM源码分析之深入分析Object类finalize()方法的实现原理

      原创申明:本文由公众号[猿灯塔]原创,转载请说明出处标注 ​“365篇原创计划”第十篇. 今天呢!灯塔君跟大家讲: 深入分析Object类finalize()方法的实现原理 finalize 如果 ...

  4. JDK源码学习笔记——Object

    一.源码解析 public class Object { /** * 一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用 */ private static native void ...

  5. Django-rest-framework源码分析----认证

    一.前言 1.1.安装 两种方式: github pip直接安装 pip install django-rest-framework 1.2.需要先了解的一些知识 理解下面两个知识点非常重要,djan ...

  6. Django rest framework源码分析(1)----认证

    目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Djan ...

  7. Django rest framework 源码分析 (1)----认证

    一.基础 django 2.0官方文档 https://docs.djangoproject.com/en/2.0/ 安装 pip3 install djangorestframework 假如我们想 ...

  8. Django的rest_framework认证组件之局部设置源码解析

    前言: Django的rest_framework组件的功能很强大,今天来我来给大家剖析一下认证组件 下面进入正文分析,我们从视图开始,一步一步来剖析认证组件 1.进入urls文件 url(r'^lo ...

  9. Django Rest Framework源码剖析(一)-----认证

    一.简介 Django REST Framework(简称DRF),是一个用于构建Web API的强大且灵活的工具包. 先说说REST:REST是一种Web API设计标准,是目前比较成熟的一套互联网 ...

随机推荐

  1. vue中使用特殊字体

    有时候为了个性化,可能需要为部分字体添加特殊的font-family 在static文件夹中创建font文件夹,内容如下: css内容如下: @font-face { font-family: vue ...

  2. luasocket 接收数据

    在游戏客户端使用luasocket作为网络通信的手段, 有一点很蛋疼, 就是它的receive是阻塞的,  那界面就卡死在那里了,  不过有一个函数:settimeout(), 传入参数0, 表示如果 ...

  3. CentOS7上Redis安装与配置

    一.redis安装(注意:最好先安装一遍gcc->yum -y install gcc:如果系统本身缺少,make时候会出错,后期修改稍麻烦) 1.wget命令下载 wget http://do ...

  4. MongoDB(五)-- 副本集(replica Set)

    一.副本集介绍 搭建副本集是为了实现mongodb高可用. Mongodb(M)表示主节点,Mongodb(S)表示备节点,Mongodb(A)表示仲裁节点.主备节点存储数据,仲裁节点不存储数据.客户 ...

  5. U3D的有限状态机系统

    或许广大程序员之前接触过游戏状态机,这已不是个新鲜的词汇了.其重要性我也不必多说了,但今天我要讲到的一个状态机框架或许您以前并未遇到过.所以,我觉得有必要将自己的心得分享一下.下面是一个链接:http ...

  6. 团购已满,O2O只是个笑话吗?

    团购的用户习惯经过多年的“发酵”以后,大多数用户的团购习惯已经养成,同样一张电影票团购和直接现场购买的差价在一倍以上,当然O2O领域的其他情况也差不多,面对明显的“优惠”,用户当然乐意使用团购服务. ...

  7. transformNative_libsWithStripDebugSymbolForDebug

    local.properties #ndk.dir=C\:\\My_other\\Android_SDK\\ndk-bundle  把NDK注释掉就ok了

  8. 在线电路编程 (ICP)

    通过在线电路编程(ICP)编程Flash.如果产品在开发中,或在终端客户的产品需要固件升级,采用硬件编程模式非常困难且不方便.采用ICP方式将很简单,且不需要将微控制器从板上拆下来.ICP方式同样允许 ...

  9. MFC 消息映射表和虚函数实现消息映射到底谁的效率高

    深入浅出MFC对于虚函数实现方式的缺点,它指出:虚函数耗费大量内存,系统最终将被这些额外负担拖垮. 但是现在对于容量巨大的白菜价格的内存来说,这种额外负担是否已经过时了呢~?    书中提到,虚函数表 ...

  10. iPhone X的缺口和CSS

    苹果公司(Apple)的发布会也开完了,新产品也将登陆了.估计很多开发人员看到iPhone X的设备是要崩溃了,特别对于前端开发人员更是如此. iPhone X的屏幕覆盖了整个手机的屏幕,为相机和其他 ...