<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. Go之单元测试

    go单元测试需要按照gotest的规范来编写: 1.文件名必须以xx_test.go命名 2.方法必须是Test[^a-z]开头 3.方法参数必须 t *testing.T   在运行gotest的时 ...

  2. C#(少用的)

    挖一挖C#中那些我们不常用的东西之系列(1)——ToDictionary,ToLookup 挖一挖C#中那些我们不常用的东西之系列(2)——IsXXX 系列方法 挖一挖C#中那些我们不常用的东西之系列 ...

  3. WPF中的命令与命令绑定导航

    1.WPF中的命令与命令绑定(一) (引入命令) 2.WPF中的命令与命令绑定(二)(详细介绍命令和命令绑定)

  4. WAF Bypass数据库特性(Oracle探索篇)

    0x01 背景 oracle与mysql特性类似,半自动化fuzz了一下,记录成果. 0x02 测试 位置一:参数和union之间的位置 1)空白字符 Oracle中可以利用的空白字符有: %00   ...

  5. Kafka Java API操作topic

    Kafka官方提供了两个脚本来管理topic,包括topic的增删改查.其中kafka-topics.sh负责topic的创建与删除:kafka-configs.sh脚本负责topic的修改和查询,但 ...

  6. c语言指针笔记

    一.int a[20]1. 数组名代表数组首元素的地址,不代表数组的地址2. 对数组名取地址代表整个数组的地址.a和&a代表的数据类型不一样 a代表数组首元素的地址 &a数组类型 in ...

  7. Sqlserver Sequence操作

    USE [database_test] GO --创建SEQUENCE CREATE SEQUENCE defaultSequence AS INT --设置开始行 START --自增量 INCRE ...

  8. namespace main

    c++程序运行的入口是::main 如果把main放到某个命名空间中,则系统就无法找到入口. 所以就有了为了测试功能的tools和test,其中没有命名空间.

  9. Java 8 特性 – 终极手册

    简介 毫无疑问,Java 8的发布是自Java 5(它的发布已远在2004年)以来在Java世界中最重大的事情.它带来了超多的新特性,这些特性分别被加入到Java语言本身.Java编译器.类库.工具类 ...

  10. SQL Server 优化总结

    1.作为过滤条件字段的数据表,在拼接语句尽量优先拼接,以提升查询效率