目前使用腾讯云的对象存储cos服务,将本地的文件同步到cos中,看了腾讯云的用户文档,发现使用COS Migration 工具还是挺适合的。

原因

因为服务器已经安装有java环境,而cos的几个用户工具中,用于自动同步的只看到这个工具,其他工具都需要额外的代码去调用命令,

从开箱即用的角度看,还是这个工具好用的。

使用

配置下./conf/config.ini。指定好同步周期后,运行脚本

 sh start_migrate.sh

因为是需要常驻运行,所以我这边是后台运行的

nohup sh start_migrate.sh >/dev/null 2>&1 &

命令大体意思是

  1. nohup 表示后台运行
  2. sh start_migrate.sh 是具体的命令
  3. >/dev/null 2>&1   标准输出到空,标准错误输出重定向(等同于)标准输出,即不保存脚本运行中产生的日志,也不保存错误信息(比如脚本不合法。。文件不存在)
  4.    是与nohup一起的,表示不受终端关闭信号影响,保持后台运行。如果没有&,在终端关闭时,当前终端执行的nohup进程也会被stop

日志

工具的日志默认是保存在./log下的,有info.log,warn.log,error.log 三个级别的日志。

 migrateLocal over! op statistics:
op_status : ALL_OK
migrate_ok : 0
migrate_fail : 0
migrate_skip : 1094
migrate_condition_not_match : 0
start_time : 2018-07-14 11:05:57
end_time : 2018-07-14 11:05:59
used_time : 2 s

上面是脚本运行成功后的输出,因为我之前已经同步过了,所以这里是显示 migrate_skip 跳过的文件数。如果有新文件同步成功了,会在migrate_ok显示成功文件数的。

同步结果中还有可以看到些文件是没有同步成功的,具体的失败原因从error.log中就会详细说明。

utf-8

我这边遇到的失败原因全都是文件名乱码,或者是说不是utf-8字符格式,导致工具找不到文件。日志中的信息基本是这个内容,就路径不一样

。。。
localpath /data/xxxxxx not exist! maybe the path contail illegal utf-8 letter
...

官方文档已经明确指出

但我们的文件是从本地开发机中通过ftp上传到服务器的。通过对比,那些乱码文件都是含有中文的。

  1. 通过ftp到服务器后全部乱码。
  2. 通过shell远程touch中文名的文件,正常可同步。

搜索之后知道了ftp是需要设置语言环境的,即字符格式。正在使用的ftp是用默认语言环境,应该是跟系统一样,windows是GBK。linux默认是utf-8

  接下来就是删除乱码文件,修改ftp环境,重新同步文件了。

发现了乱码文件后,想在终端中手动删除文件,但无法选定。可以使用文件id进行指定。

ls -i  ./  # 列出文件id及文件名
find ./ -inum xxxxx -print -exec rm {} \; # 获取xxx文件id的文件名传给附加命令 rm 删除 如果是文件夹 -rf 需要加在{}后面

通知

有文件需要同步时,不想还要查看日志知道是否成功,打算通过webhook的方式自动通知同步结果。就像git有代码提交后,有消息推送的webhook。目前是使用钉钉平台的自定义机器人

  1. 在群聊中添加自定义机器人,获取webhook地址。
  2. 修改cos migration工具的源码,在成功同步后添加通知任务,向webhook地址post数据
  3. 群聊中显示同步结果,有成功的文件数,还有失败的文件路径及原因

具体代码请查看我的另外一篇。

腾讯云 COS 对象存储使用的更多相关文章

  1. Go操作腾讯云COS对象存储的简单使用案例

    准备环境 安装Go环境 Golang:用于下载和安装 Go 编译运行环境,请前往 Golang 官网进行下载 安装SDK go get -u github.com/tencentyun/cos-go- ...

  2. 腾讯云COS对象存储 Web 端直传实践(JAVA实现)

    使用 腾讯云COS对象存储做第三方存储云服务,把一些文件都放在上面,这里主要有三中实现方式:第一种就是在控制台去设置好,直接上传文件.第二种就是走服务端,上传文件,就是说,上传文件是从服务端去上传上去 ...

  3. 腾讯云COS对象存储占据数据容灾C位

    说到公有云容灾,大家首先想到的是云上数据备份. 然而,随着企业核心业务逐渐从线下迁移到云上,客户提出了更高的要求.如何确保云上业务的高可用.数据的高可靠,这对云厂商提出了新的挑战. 腾讯云作为全球领先 ...

  4. 腾讯云COS对象存储

    一.腾讯云COS 腾讯云对象存储 COS 是一种存储海量数据的分布式存储服务.COS 提供了多种对象的存储类型:标准存储.低频存储.归档存储. 二.为什么要使用TA 便宜: 个人用户有6个月的免费使用 ...

  5. 腾讯云COS对象存储的简单使用

    叮当哥之前买了一年的腾讯云服务器,昨日偶然发现腾讯云送了叮当哥半年的cos对象存储服务器,于是就撸起袖子传了几张珍藏的高清大图上去,现将其上传的简单使用步骤总结一波(其它操作参加官方SDK文档API) ...

  6. 腾讯云的对象存储COS

    什么是对象存储COS Clound Object Storage,COS,专门为企业和开发者们提供能够存储海量的分布式存储服务,用户可以随时通过互联网对大量数据进行批量存储和处理,在任意位置存储和检索 ...

  7. 腾讯云cos对象在线显示

    问题 前端使用了一张cos的图片,但是无法显示图片,使用的是cdn的加速域名地址. 对比:使用服务器的直接域名是可以显示的. 两者地址直接访问时,一者在线显示,一者直接下载到本地. 原因: 使用默认提 ...

  8. PHP 腾讯云cos使用之我见

    因为某些人的原因,本文从新改名发布一遍. 原名称:tp5 -- 腾讯云cos简单使用 原文链接:https://www.cnblogs.com/YFYQ/p/10840050.html 因项目需要,本 ...

  9. tp5 -- 腾讯云cos简单使用

    因项目需要,本来是需要对接阿里云oss,但因客户错误将云存储买成腾讯云cos,因此简单做了个对象上传使用 首先下载cos的sdk: 三种方式在文档上面都有介绍 SDK 安装有三种方式:Composer ...

随机推荐

  1. python中的循环以及,continue和break的使用

    循环 目标 程序的三大流程 while 循环基本使用 break 和 continue while 循环嵌套 01. 程序的三大流程 在程序开发中,一共有三种流程方式: 顺序 —— 从上向下,顺序执行 ...

  2. 2017年3月1日09:45:39 css选择器,session数据取不到

    昨天碰到了一个问题,通过输入指定的url进行登录在服务端将url存在session中但是登陆之后因为页面提交的登录请求是ajax请求,在后端提取session时获取不当之前存的url,老司机说不是同一 ...

  3. 性能测试-10.数据分析Analysis

    Analysis Summary 平均响应时间(Average TransactionResponse Time) 每秒响应数(Transactions per Second) 1.Vuser  Ru ...

  4. SQL注入之Sqli-labs系列第二十八关(过滤空格、注释符、union select)和第二十八A关

    开始挑战第二十八关(Trick with SELECT & UNION) 第二十八A关(Trick with SELECT & UNION) 0x1看看源代码 (1)与27关一样,只是 ...

  5. Spring Boot 揭秘与实战(五) 服务器篇 - 其他内嵌服务器 发表于 2017-01-03 | Spring框架 | Spri

    文章目录 1. Jetty 的切换 2. Undertow的使用 Spring Boot 可选择内嵌 Tomcat.Jetty 和 Undertow,因此我们不需要以 war 包形式部署项目.< ...

  6. Android内核sys_setresuid() Patch提权(CVE-2012-6422)

    让我们的Android ROOT,多一点套路. 一.简单套路 CVE-2012-6422的漏洞利用代码,展示了另一种提权方法.(见附录) 这也是一个mmap驱动接口校验导致映射任意内核地址的洞.将内核 ...

  7. Java单链表简单实现* @version 1.0

    package com.list; /** * 数据结构与算法Java表示 * @version 1.0 * @author 小明 * */ public class MyLinkedList { p ...

  8. Oracle使用笔记(一)

    目录 一.创建表: 二.编辑表数据: 三.Oracle基本数据类型: (一) 字符串类型 1.1:CHAR类型 CHAR(size [BYTE | CHAR]) 1.2: NCHAR类型 1.3 VA ...

  9. 陕西师范第七届I题----排队

    链接:https://www.nowcoder.com/acm/contest/121/I来源:牛客网 题目描述 ACM竞赛队内要开运动会啦!!!! 竞赛队内的一群阳光乐观积极的队员们迅速的在操场上站 ...

  10. ATM-java

    通过学习JAVA,我的进步不是很多,了解了不多的编程知识,但是我一直在进步,我发现我有很大的进步空间,每天都有一点点的进步使我每天都很充实.还记得我编写的第一个 经典程序“hello Word”.从那 ...