源码 <oss2.models.PutObjectResult object at 0x7f7928d0b240>
<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>的更多相关文章
- JDK1.8源码阅读笔记(1)Object类
JDK1.8源码阅读笔记(1)Object类 Object 类属于 java.lang 包,此包下的所有类在使⽤时⽆需⼿动导⼊,系统会在程序编译期间⾃动 导⼊.Object 类是所有类的基类,当⼀ ...
- JDK1.8源码(一)——java.lang.Object类
本系列博客将对JDK1.8版本的相关类从源码层次进行介绍,JDK8的下载地址. 首先介绍JDK中所有类的基类——java.lang.Object. Object 类属于 java.lang 包,此包下 ...
- JVM源码分析之深入分析Object类finalize()方法的实现原理
原创申明:本文由公众号[猿灯塔]原创,转载请说明出处标注 “365篇原创计划”第十篇. 今天呢!灯塔君跟大家讲: 深入分析Object类finalize()方法的实现原理 finalize 如果 ...
- JDK源码学习笔记——Object
一.源码解析 public class Object { /** * 一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用 */ private static native void ...
- Django-rest-framework源码分析----认证
一.前言 1.1.安装 两种方式: github pip直接安装 pip install django-rest-framework 1.2.需要先了解的一些知识 理解下面两个知识点非常重要,djan ...
- Django rest framework源码分析(1)----认证
目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Djan ...
- Django rest framework 源码分析 (1)----认证
一.基础 django 2.0官方文档 https://docs.djangoproject.com/en/2.0/ 安装 pip3 install djangorestframework 假如我们想 ...
- Django的rest_framework认证组件之局部设置源码解析
前言: Django的rest_framework组件的功能很强大,今天来我来给大家剖析一下认证组件 下面进入正文分析,我们从视图开始,一步一步来剖析认证组件 1.进入urls文件 url(r'^lo ...
- Django Rest Framework源码剖析(一)-----认证
一.简介 Django REST Framework(简称DRF),是一个用于构建Web API的强大且灵活的工具包. 先说说REST:REST是一种Web API设计标准,是目前比较成熟的一套互联网 ...
随机推荐
- 九度 1464:Hello World for U
题目描述: Given any string of N (>=5) characters, you are asked to form the characters into the shape ...
- grid网格的流动定位
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python BeautifulSoup库用法总结
1. Beautiful Soup 简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.pyt ...
- mysql5.7 服务无法启动的问题解决方法
解决办法: 1.把MySQL文件低下的data文件删掉,如果没有的话,就不用管了: 2.在mysql安装路径下,执行mysqld --initialize命令进行初始化,mysql会自动帮你重新创建d ...
- ajax做省市联动
原理: 当select.jsp页面打开时,向服务器发送异步请求,得到所有省份的名称(文本数据).然后使用每个省份名称创建<option>,添加到<select name=”provi ...
- Elasticseach的评分机制
lucene 的评分机制 elasticsearch是基于lucene的,所以他的评分机制也是基于lucene的.评分就是我们搜索的短语和索引中每篇文档的相关度打分. 如果没有干预评分算法的时候,每次 ...
- wireshark----linux
1.[root@lc~]# tshark Running as user "root" and group "root". This could be da ...
- 剑指offer面试题7:用两个栈实现队列
题目1:用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 代码实现: public class Solution07 { Stack<Integer> ...
- JBuilder+struts一个常见异常
[org.apache.commons.digester.Digester]-[ERROR] Parse Error at line 3 column 22: The content of eleme ...
- 【linux】nginx options 跨域问题 请求HTTP错误405 用于访问该页的HTTP动作未被许可 Method Not Allowed
JavaScript JS 跨域问题 HTTP 错误 405 - 用于访问该页的 HTTP 动作未被许可HTTP 错误 405.0 - Method Not Allowed Nginx 处理跨域问题. ...