发表于: 2018-04-03 23:20:10

2 671


今日完成:

1.       图片迁移

阿里云ossimport

https://www.alibabacloud.com/help/zh/doc-detail/56990.htm?spm=a3c0i.o59922zh.a3.2.7521cdf6q9zvdc

OssImport工具可以将本地、其它云存储的数据迁移到OSS,它有以下特点:

支持的丰富的数据源,有本地、七牛、百度BOSAWS S3Azure Blob、又拍云、腾讯云COS、金山KS3HTTPOSS等,并可根据需要扩展;

支持断点续传;

支持流量控制;

支持迁移指定时间后的文件、特定前缀的文件;

支持并行数据下载、上传;

支持单机模式和分布式模式,单机模式部署简单使用方便,分布式模式适合大规模数据迁移。

         单机模式:

                   单机

MasterWorkerTrackerConsole运行在一个机器上,系统中有且只有一个Worker。我们对单机模式的部署和执行进行了封装优化,单机部署和执行都很简单。单机模式下MasterWorkerTaskTrackerConsole四个模块统一打包成ossimport2.jar

                                              

提示:

import.bat/import.sh为一键导入脚本,修改完local_job.cfg后可以直接运行;

console.bat/console.sh为命令行工具,可以用于分布执行命令;

脚本或命令时请在ossimport目录下执行,即 *.bat/*.sh 的同级目录。

一键导入:

执行一键导入,Window系统下在 cmd.exe 中执行 import.batLinux终端中执行 bash import.sh

如果之前执行过程序,会提示有是否从上次的断点处继续执行,或者重新执行同步任务。对新的数据迁移任务,或者修改了同步的源端/目的端,请选择重新执行。

Windows下任务开始后,会打开一个新的cmd窗口执行同步任务并显示日志,旧窗口会每隔10秒打一次任务状态,数据迁移期间不要关闭两个窗口;Linux下服务在后台执行。

 Job 完成后,如果发现有任务失败了,会提示是否重试,输入 y 重试,输入 n 则跳过退出。

如果上传失败,请打开文件master/jobs/local_test/failed_tasks/<tasktaskid>/audit.log查看,确定失败原因。

迁移方案(从第三方存储迁移到OSS):

迁移步骤:

迁移历史数据。

清任务、清配置。

操作过程请参考分布式部署。

开始迁移。

可在OSS控制台OSS Bucket中查看实际迁移完成的数据。

设置镜像回源,客户业务系统读写切到OSS

OSS控制台打开OSS镜像回源,回源地址为迁移源(第三方存储)。

客户业务系统读写切换到OSS,假设业务系统修改好的时间为T2,则T2后不再有新数据写到迁移源。

迁移剩余的数据

修改job.cfg配置项importSince=T1,请参考OssImport 架构及配置,迁移剩余数据(T1~T2)特殊情况下,也可以使用job.cfgimportSince = 0, isSkipExistFile=true进行再次迁移,请参考OssImport 架构及配置。

 

阿里云的文档对配置的介绍非常清晰

local_job.cfg配置数据迁入迁出路径和权限配置

sys.properties配置工作模式:

配置好后在命令行执行import.bat

弹出java执行窗口,执行成功

七牛云实名认证还没通过,所以测试了从本地进行迁移,oss之间的迁移配置多了账户认证

七牛云:qfetch

https://developer.qiniu.com/kodo/kb/1347/how-to-ali-cloud-oss-files-on-migration-to-seven-niuyun-storage?ref=support.qiniu.com

qfetch 是一款数据迁移工具,利用七牛提供的fetch功能抓取指定文件列表中的文件。在文件列表中,您只需要提供资源的外链地址和要保存的文件名就可以了。

 

使用该工具进行资源抓取时,您可以根据需要中断任务的执行,下次重新使用原命令执行时,会自动跳过已经抓取成功的资源。

 

qfetch是通过外链进行迁移的,因此需要通过qshell配合获取文件外链

qshell alilistbucket <DataCenter> <Bucket> <AccessKeyId> <AccessKeySecret> [Prefix] <ListBucketResultFile>1

egqshell alilistbucket oss-cn-shanghai.aliyuncs.com alitoqiniu xxx xxx aliyuntoqiniu.txt1

获取需要迁移的所有文件的文件名

cat aliyuntoqiniu.txt | awk '{print "http://alitoqiniu.oss-cn-shanghai.aliyuncs.com/"$1}' >alitoqiniu.txt1

使用cat awk对外链进行拼接

qfetch -ak='xxx' -sk='xxx' -bucket='tttest' -file='alitoqiniu.txt' -worker=300 -job='demo' | tee diff.log 1

egtee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。我们可利用tee把管道导入的数据存成文件,甚至一次保存数份文件

2.       日志记录统计

使用badboy录制使用邮箱验证码验证注册,并且上传图片到阿里oss的脚本,验证码设置为一致的:

jmeter进行100次提交:

。。。。。免费邮件每天只有15封。。。。

测试短信,过于频繁。。。。

手动上传图片都成功了

3.       荣联短信验证码:

对响应解析后,statusCode"000000"表示请求发送成功。statusCode不是"000000",表示请求发送失败,客户服务端可以根据自己的逻辑进行重发或者其他处理。

短信错误码:

http://doc.yuntongxun.com/p/5a5857203b8496dd00dd2b3d

4.       短信通道的防攻击策略

同一号码发送短信太频繁荣联会拒绝

可在web页面设置60秒发送短信的button

常用方法:

短信发送间隔设置——设置同一号码重复发送的时间间隔,一般设置为60-120

IP限定——根据自己的业务特点,设置每个IP每天的最大发送量

手机号码限定——根据业务特点,设置每个手机号码每天的最大发送量

流程限定——将手机短信验证和用户名密码设置分成两个步骤,用户在设置成功用户名密码后,下一步才进行手机短信验证,并且需要在获取第一步成功的回执之后才可进行校验。

  绑定图型校验码——将图形校验码和手机验证码进行绑定,这样能比较有效的防止软件恶意注册。

检测IP所在地是否与手机号归属地匹配

先做预发送请求,后端返回校验串,前端js将所有信息再次编码送回,js记得混淆。(不明白)

对于已被拉黑的手机号/ip/设备,同样提示发送成功,而后端不发出短信,以扰乱攻击者视听。

我的设置是直接让页面跳转到输入验证码的页面,用户无法再进行点击发送验证码

6.       邮件通道的防攻击策略

sendcloud有黑名单

7.       sendcloud发送邮件返回值

http://www.sendcloud.net/doc/email_v2/

8.       阿里云oss缩略图

https://help.aliyun.com/document_detail/44687.html?spm=a2c4g.11186623.6.970.Zk6Izh

通过处理参数来请求缩略图:

如果用户对原图进行一定的处理再返回,可有两种形式:

1.       通过URL的形式

通过三级域名访问: http://bucket.<endpoint>/object?x-oss-process=image/action,parame_value

Bucket:用户的IMG频道。

endpoint:用户的Bucket所在数据中心的访问域名。

Object:在IMG中,用户操作图片的基本数据单元是Object。即OSS对应的Object,单个Object(即每张图片)允许的最大大小是20MB

action:用户对图片做的操作。

parame:用户对图片做的操作所对应的参数。

2.       多个action之间组合形式

多个action之间效果顺序执行,例如:image/resize,w_200/rotate,90表示图片先进行宽为200的缩放,再进行90度的旋转

Style(样式)

图片处理可将用户的图片处理操作和参数保存成一个别名,即样式。利用样式功能后,原本一系列操作,只需要用一个很短的URL就能实现相同的效果。

http://userdomain/object?x-oss-process=style/name

使用SDK方式

除了public bucket可以直接通过url方式进访问,对于private的文件,我们一般采用SDK的方式来访问。因为图片处理服务都是 GET 操作,所以在Get Object基础上面添加process参数即可。

9.       阿里云oss防盗链

https://help.aliyun.com/document_detail/31937.html?spm=a2c4g.11186623.2.3.69DpYw

目前OSS提供的防盗链的实现方法主要有两种:

设置Referer。控制台、SDK都可以操作,适合不想写代码的用户,也适合喜欢开发的用户。

签名URL,适合喜欢开发的用户。

明日计划:

1.       rmi

遇到的问题:

1.       赶进度打乱节奏,感觉学得很不扎实

收获:

1.       oss图片迁移




返回列表 返回列表
评论

    分享到