前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记 S3Service 代码中的一个低级错误

记 S3Service 代码中的一个低级错误

作者头像
老码农
发布2020-02-25 12:42:16
5020
发布2020-02-25 12:42:16
举报
文章被收录于专栏:老码农专栏老码农专栏

osgl-storageosgl 工具箱 中用于简化存储的. 其特点是接口简单, 支持多种存储引擎插件, 包括本地文件系统, AWS S3, Azure Blob, 七牛 Kodo 服务.

最近老码农在一次调试中偶然发现了 osgl-storage S3Service 中一个隐藏很久的第几错误, 在此记录下来.

osgl-storage 的结构很简单, 大致是有 StorageService 来操作 SObject:

S3Service 定义了一个字段 defStorageClass, 用于设定默认的 S3 存储等级:

代码语言:javascript
复制
public class S3Service extends StorageServiceBase<S3Obj> implements IStorageService {  
	public enum StorageClass {  
		STANDARD, REDUCED_REDUNDANCY, GLACIER;
	}
	private StorageClass defStorageClass = StorageClass.REDUCED_REDUNDANCY;
	...
}

S3Service 也重载了 StorageServiceBaseconfigure(Map) 方法, 并在其中处理用户配置的 def storage class:

代码语言:javascript
复制
@Override  
protected void configure(Map<String, String> conf) {
	super.configure(conf, "s3");
	...
	String sc = conf.get(CONF\_DEF\_STORAGE_CLASS);
	if (null != sc) {
		defStorageClass = StorageClass.valueOf(sc, defStorageClass);
	}
	...
}

S3Service 的构造函数:

代码语言:javascript
复制
public S3Service(Map<String, String> conf) {  
  super(conf, S3Obj.class);  
}

StorageServiceBase 的构造函数:

代码语言:javascript
复制
public StorageServiceBase(Map<String, String> conf, Class<SOBJ_TYPE> sobjType) {  
  this.sobjType = $.requireNotNull(sobjType);  
  configure(conf);  
}

到这里请各位看官研究一下这个低级错误在哪里. 我们在评论中揭晓答案 ^_^

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档