问题描述:

上传oss云存储,无法成功,报错:

2019-01-29 17:44:59,552 oss2.api [ERROR] 140080008111872 : Exception: {'status': 404, 'x-oss-request-id': '5C50209BAE509FEEA16D753E', 'details': {'Code': 'NoSuchKey', 'Message': 'The specified key does not exist.', 'RequestId': '5C50209BAE509FEEA16D753E', 'HostId': 'dsideal-yy.oss-cn-qingdao.aliyuncs.com', 'Key': 'AreaBackup/6C:92:BF:A4:E6:5E/Mysql/mysql-2019-01-29_17-10-31.tar.gz'}}
 
思路:
一直怀疑是因为系统时间不对,导致与OSS时间对比失败,但查看 date -R,一切正常,蒙逼一天。
 
后续办法:是不是系统时间除了date -R看到的时区,还有一个硬件的概念,就着手将硬件的时间、时区一并修改。
针对中国时区,修改操作如下
. 修改文件 /etc/sysconfig/clock内容: ZONE=Asia/Shanghai
UTC=false
ARC=false . (针对同步时区不成功,执行下面步骤就行!!!) rm -rf /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

补充:

系统时间变化原因分析

Linux的时间有两种,一是系统时间,另外是硬件时间(BIOS时间)。

系统每次启动时会读出BIOS时间,将之赋给系统时间。之后系统时间将独立运行,而BIOS时间不会变化。

在BIOS时间中,有两种表示形式。一种是以localtime表示的,一种是以UTC表示的。具体查看的方式可以通过hwclock
–debug,该命令可以输出当前硬件时间的表示形式。

下面例举各种情况下系统时间的变化:

1.当hwclock设定为localtime,/etc/sysconf/clock 中的
UTC=true时,重启后系统时间后相对于BIOS时间被提前8个小时。

2.当hwclock设定为localtime,/etc/sysconf/clock中的
UTC=false时,重启后系统时间相对于BIOS时间没有变化

3.当hwclock设定为UTC,/etc/sysconf/clock 中的
UTC=true时,重启后系统时间后相对于BIOS时间无变化

4.当hwclock设定为UTC,/etc/sysconf/clock 中的
UTC=false时,重启后系统时间后相对于BIOS时间被推后8个小时。

如下图所示:

/etc/sysconf/clock中UTC=true
   
/etc/sysconf/clock中UTC=false

硬件时间 localtime
   
重启后系统时间后相对于BIOS时间被提前8个小时

系统时间无变化

硬件时间
UTC

系统时间无变化

重启后系统时间后相对于BIOS时间被推后8个小时

可见,当BIOS时间设置的类型和 /etc/sysconf/clock中的设置不一致时,就会导致系统启动时的系统时间错误。

如果有脚本实现时间同步,但是系统启动之后运行的。虽然时间同步可以将系统时间同步到正确时间,但是由于之前的系统时间错误设定,将会出现一个错误的时间间隔,这个时间间隔可能会对依赖系统时间的程序产生影响。

对策:出现这种问题的根本原因是硬件时间的类型和
/etc/sysconf/clock中的设置不一致。所以我们将在时间同步脚本中增加对硬件时间的同步,这样可以解决这种问题。

注:

UTC时间:世界协调时间(Universal Time Coordinated,UTC) ,也就是0时区的时间

CST时间:CST China Standard Time UTC+8:00
中国沿海时间(北京时间),这是我们所属时区的localtime。

2.关于时区的设置:

为保证时间的正确,应该把时区设置正确。设置正确仅是为了使得时间更好理解和其他方面的维护。

设置方法:

1.      
手动设置时区:

例如:设置东八区的时间

ln -sf /usr/share/zoneinfo/Asia/Shanghai 
/etc/localtime

编辑/etc/sysconfig/clock中 ZONE="Asia/Shanghai"

2.       
使用图形化命令设置

system-config-date (大部分情况仅限于RedHat和CentOS)或者使用
tzselect,按照命令提示进行即可。

处理OSS上传失败一例的更多相关文章

  1. oss图片上传失败

    在生产上跑的正常代码,新搭了个测试环境,发现oss上传失败! 开始分析oss是否有以各种类似于白名单的功能,不认识测试域名导致的...结果不是! 改变访问类型 因为oss节点Endpoint是在杭州, ...

  2. Struts2文件上传方式与上传失败解决方式

    首先将几个对象弄出来第一个 上传页面第二个 上传action第三个 startut2配置文件 我的文字描述不是很好,但是终归是自己写出来的,后来我在网上看到一篇关于文件上传描述的非常清楚的文章, 链接 ...

  3. Uploadify 上传失败

    更改Apache的php.ini的配置 In my php.ini (created custom ini file in public_html) would this solve this pro ...

  4. spring mvc:ueditor跨域多图片上传失败解决方案

    公司在开发一个后台系统时需要使用百度的UEditor富文本编辑器,应用的场景如下: UEditor的所有图片.js等静态资源在一个专有的静态服务器上: 图片上传在另外一台服务器上: 因为公司内部会使用 ...

  5. KindEditor文件上传成功前端显示上传失败

    一.使用kindeditor 上传图片 ,根据kindeditor 要求返回了相应的数据, 但是kindeditor 插件显示上传失败!!! 解决方法: 各个版本位置可能不同!!! 1.修改kinde ...

  6. vs文件上传失败--超过最大字符限制

    一.问题 在文件上传时,会遇到大文件上传失败. >F12查看报错网络请求返回结果 >问题分析 由于vs上传文件默认的字符大小控制. 二.解决方法 >在web.config中修改或添加 ...

  7. 关于 tp5.0 阿里云 oss 上传文件操作

    tp5.0 结合阿里云oss 上传文件 1.引入 oss 的空间( composer install 跑下第三方拓展包及核心代码包) 备注:本地测试无误,放到线上有问题  应该是移动后的路劲(相对于服 ...

  8. ceph:如何处理rados --striper上传失败的对象

    如何处理使用rados --striper上传失败的对象? `Remove striped objects from a ceph pool without using the striper lib ...

  9. tomcat从manager部署war项目上传失败

    tomcat从manager部署war项目上传失败, 查看manager.2018-07-17.log 日志,可以看到如下信息. less manager.2018-07-17.log 17-Jul- ...

随机推荐

  1. Charles for MAC配置与使用

    Charles已成为网络接口数据抓取的利器之一,无论是作为开发人员还是测试人员,在实际开发及调试中都需要通过网络数据接口的抓取来进行数据正确性的验证及异常的排查.Charles抓取网络接口数据的原理就 ...

  2. Rasterization 学习笔记

    ======================Barycentric interpolation====================================== <1>2d/3d ...

  3. Keepalived详解(二):Keepalived安装与配置【转】

    一.Keepalived安装与配置: 1.Keepalived的安装过程: Keepalived的安装非常简单,本实例以源码安装讲解: Keepalived的官方网址:http://www.keepa ...

  4. 待解决输入istream_iterator

    山寨版 istream_iterator 输入 第一行是整数t,表示有t组数据,每组数据一行,三个整数加两个字符串.字符串是不含空格的. 输出 对每组数据,输出二行,在第一行输出第一个数,第二行原样输 ...

  5. HTTP协议06-报文首部

    HTTP报文格式 ​ HTTP协议的请求和响应报文中必定包含HTTP首部.首部内容为客户端和服务器分别处理请求和响应提供所需要的信息. 1)HTTP请求报文 在请求中,HTTP报文由方法.URI.HT ...

  6. vc++基础班[28]---动态数组及动态链表的讲解

    C++中也有相应的动态数组.动态链表.映射表的模板类,就是STL中的:vector.list.map 他们属于C++标准中的一部分,对于程序的移植性来说也是不错的,但是在MFC编程中使用 CArray ...

  7. cocos开发学习记录

    场景的创建和切换 https://blog.csdn.net/lin453701006/article/details/56334578

  8. STM32F1-GPIO的操作

    GPIO 即通用输入输出口.凡事都要熟悉,熟能生巧.一定要掌握MDK软件的工程操作方法. 对于GPIO的操作. Project里面要有以下几个文件夹(开发之前需要包含相应的库文件,这里默认已经包含) ...

  9. php array_map与array_walk使用对比

    array_map(): 1.array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组,若函数作用后无返回值,则对应的新值数组中为空. 2.回调函 ...

  10. Uiautomator - 6.0 以上权限受限问题

    问题:在android studio中使用UiAutomator 2.0 编写测试用例时,要实现截图(非命令方式),写入文件时出现权限被拒绝的提示.例如: java.io.FileNotFoundEx ...