【Ceph Bugs 系列】Red Hat Ceph Storage 3.2 设置 lifecycle 后,JDK 报错:Error parsing expiry-date from x-amz-ex

5 篇文章 0 订阅
3 篇文章 0 订阅

环境信息

Ceph 版本:Red Hat Ceph Storage 3.1(对应社区版为 12.2.8)

问题描述

如果在对象存储的 bucket 上设置了 lifecycle(生命周期),那么 rgw 网关返回给客户端的 response headers 中会加一个 x-amz-expiration。

对于 x-amz-expiration 的格式,Amazon 官网给出的示例为:

x-amz-expiration: expiry-data="Fri, 21 Dec 2012 00:00:00 GMT, rule-id="Rule for testfile.txt"

即 “星期,日 月 年,时:分:秒” 的 GMT 格式。并且 Amazon S3 的 JDK 也是按照这个格式来解析的。

在社区版本的 Ceph Luminous 中,无论是否配置 lifecycle ,均不会有此字段。社区版的 Ceph ,直到 Nautilus 版本才有此功能。

但在红帽的的 rhceph3.1 中,红帽自行修复了此问题,不过返回的 respose header 中,格式却为:

expiry-date="Mon Aug 8 08:32:50 2019"

即 “星期 月 日 时:分:秒 年” 格式。由于格式与 Amazon S3 中明显不同,导致 Amazon S3 client 包在解析时一直报 warn 日志。

原因分析

个人推测,Amazon 的格式为 GMT 标准。在 Ceph 社区版无此功能时,红帽作为一个美国公司,直接按照美式时间日期显示格式设置了返回值,造成与标准 GMT 格式不兼容。

解决办法

升级到 Red Hat Ceph Storage 3.3,或者采用 Ceph Nautilus 社区版即可解决此问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值