最优化使用阿里OSS云存储

  上一篇文章讲到了为何要迁移到阿里OSS,经过几天时间的实际验证,发现还是踩了不少的坑,这里记录下,供参考。

  首先有几个先决条件如下:

  1. 全站所有请求必须HTTPS
  2. 全站仅允许出现自有二级域名
  3. 上行和下行流量均不经过ECS服务器

  (代码洁癖 8)

  阿里OSS我们可以简单的认为分两个部分:

一是存储有关的,提供了两个访问域名:一个是公网,一个内网

<bucket>.oss-cn-shenzhen.aliyuncs.com (A域名)
<bucket>.oss-cn-shenzhen-internal.aliyuncs.com (B域名)

二是为图像处理(缩图,转码)有关的,也提供了一个访问域名:

<bucket>.img-cn-shenzhen.aliyuncs.com (C域名)

我们在这个图像处理的功能上面绑定了一个自有的二级域名:

image.snapast.com (D域名)

默认分配并指向了下面的CDN加速节点域名:

image.snapast.com.w.kunlunca.com (E域名)

  暂且称为A~E域名,注意其中细微差别。其中A和B域名本身是支持HTTPS的,但C不行,在绑定了D之后,可以上传SSL证书开启。A域名也可以绑定自有域名,但不支持HTTPS。图像处理设置了禁止原图访问,也就是C,D域名仅允许通过“样式”访问到缩略图。但A,B不受限制,本来就不同的系统。

于是第一个方案是这样的:

用户上传:HTTPS POST A域名
用户访问:HTTPS GET D域名

  初看没啥问题,除了引入一个第三方域名,不符合预定规范,但也运行良好,但有个很严重的问题,会泄漏原图,将D域名的路径拼接到A上面就能拿到原图。故pass掉,和客服聊了后给了个鸡贼的方案:

方案二:

用户上传:HTTPS POST upload.snapast.com -> proxy_pass -> B域名
用户访问:HTTPS GET D域名

  在nginx上将用户上行的POST请求转发到B域名,这样可以在nginx层面拦截原图访问,并可以支持自有域名HTTPS。虽然又点不符合规范了,虽然ECS下行带宽还是蛮大的,proxy_pass也是内网地址,似乎也无大碍。

方案三:
将bucket设置为私有,这样POST不变,GET需要增加signature,想想就复杂,搞的URL又长又丑,没再尝试。

  后来想想,能不能直接POST到D域名试试,居然成功了。Object 管理中证实了文件是传成功的,但感觉怪怪的,原来CDN还能upload。官方文档似乎也没有说这样用合不合理,暂且先如此把。

风光摄影的一些tips

  风光摄影里面离不开超广角,滤镜,长爆这些,但比这还要重要的是体力。上周迁移完了相册,去了一趟背仔角,南山区过去光坐车就消耗了2个小时。穿过华侨公墓径直走到海边,放下包裹,组装好脚架,滤镜支架,结果发现没带快门线,临时用iPhone来控制。站站蹲蹲几个小时,海边那些风化的石头也不太好坐,累的够呛。

  1. 优先选择原厂的有线快门,不为啥,稳定。之前拍夜景准备了JJC的无线快门,时不时的触发失败
  2. 构图稍低一点,利用广角畸变带来冲击力
  3. 准备好镜头纸,随时擦拭意外沾上的小水珠,几率很高哦
  4. 上ND镜后使用实时取景会非常耗电,预览噪点非常严重,自动提升ISO导致,所以多备电池吧
  5. 接上一条,CMOS过热严重,画面暗部涂抹感,彩噪严重,所以多关机休息
  6. 关闭防抖,自动对焦
  7. 准备小板凳,重要!!

 接下来就是好好享受吧~~

深圳盐田背仔角

使用阿里云OSS WEB直传

  最近在忙着将snapast.com的图片迁移到阿里OSS服务器上,并采用WEB直传方案,以加快客户端上传速度。并使用CDN访问方式来提高图片加载速度。目前所有的图片都是存储在ECS云服务器上,用的是FastDFS存储,纯Java的图片缩放处理,速度比较慢。并且单线程就将CPU消耗完了,2M的带宽也经不起并发访问,于是决定将图片迁移到OSS上。

  WEB直传的架构设计还是很优秀的,客户端直接POST请求到OSS服务器,无需经过ECS服务器,ECS只是计算一个Policy,并接收OSS回调,整个图片上传流程就完成了。OSS具有阿里的海量CDN支持,各种网络下都能很好的优化。

这里主要记录下一些细节:

  1. OSS要设置Cors规则,以便跨域请求
  2. 2. Bucket区域要和ECS区域一致,方便内网拉取数据
  3. 使用uploadifive上传组件且auto设置为true时,在onAddQueueItem方法中获取Policy,已换plupload,在BeforeUpload中获取Policy。
  4. 由于OSS会忽略请求中文件域以后的字段,因此在封装参数的时候,将文件域(Content-Disposition: form-data; name=”file”; filename=”xxx.jpg”)置于最后,这货貌似完全照搬Amazon S3,否则会找不到key

  Upload差不多就这样了,先写到这。

普宁寻梅记

  大概两周前,在开会的时候,Herman一条消息过来问周末普宁拍梅花,去不去。想想也有蛮久没活动了,且之前也错过了前两次活动怪可惜的,于是没多想就先答应了。Herman在科技也是做UI设计,风光大师,最近一组缅甸的人文纪实片还选入了《咔啪》杂志推荐,他在磨坊的发活动质量都还蛮高。常常在年初就把整年的旅行计划早早订好。

摘自Herman朋友圈
摘自Herman朋友圈

  就这样,在1月15号晚上一行十人出发包车去了普宁,八点左右出发,在出深圳的方向堵了一小会,上了高速后一路畅通。恰逢下大雨,不知为何夜里的高速公路特别的迷人,布满水珠的窗户,来回晃动的雨刮,被照亮的指示牌一个一个飘向身后,即便这旧面包噪音大再大,心情依然平静。赶在十二点正好入住酒店。

  第二天早早出发去第一站盛德梅海山庄,位于普宁市大坪镇善德村,距离市区51公里,由于当地居民往外迁,整个村子几本上原生态。起初以为只有这个山庄里面种植了梅花,没想到沿路上全是梅海,密密麻麻,处处皆美景,不愧为梅花之乡。当地政府是要把这一片打造成旅游景点,只不过是刚刚起步,比如这个山庄,大门口的收费处,停车场,餐饮住宿都齐全了,但还没开始收取门票,仅仅是20块的停车费。进去后一条小路绵延三公里都是梅,大开眼界。绝佳的拍照地点。无论是置身梅海中还是登高望远,都让人流连忘返。小雨中的梅花格外精美,挂着豆大的雨点,娇艳欲滴的样子,可惜没带长焦镜头,少了一份层次感。

  逛的差不多下山找到一处农家就餐时正好下大雨,此时真想打伞冲进梅海,将雨滴也收入画面中。作罢,还是爱惜下器材。短暂休息后,下午继续赶往泥沟村,该村普宁市重点侨乡,历史悠久,12年入选广东十大最美古村落。其建筑群颇具特色,四四方方,家家户户都是小两层,中间还有个露天院子,但一楼的采光很不好。车子开到村口,便没路了,只能步行,越往里走年代越悠久,瞎逛一阵子后碰到有缘人给我我们带路,找到了现存最老的一批房屋,却只剩断壁残垣,杂草丛生,据说也有百年之久了。这些形态及其相似的建筑,在Google Earth都能清楚看到。

未标题-1

  泥沟村给我的印象是非常的干净,人也很友善,其中碰到一位老太正好锁门出来,看到我们拿着相机,主动邀请去她家里看看,刚打开门,里面漆黑黑的,老太熟练的找到开关打开了灯,这才看清了里面的布局,简单清贫,像极了我小时候住在爷爷奶奶家那种感觉。

_MG_3989

  天黑后结束了一天的拍摄,此时又开始下起了大雨,驱车到12公里外的洪阳镇休息。次日决定再去拍一次梅花,洪阳镇往西走就进入了揭西,转到一条小道继续寻找梅海,后来在当地人的指引下爬过一座还在开发的山头,又发现好大一片梅海,山间空无一人,尽情享受。。。

QQ20160127-0@2x

  上图是三天的GPS轨迹图,橙色是第一天晚上去的,黄色是第二天,青色第三天的。梅海就分布在黄色左边处,途经乡道两边全是。就这样度过两天的普宁寻梅之旅,一脚泥土回到深圳。

  更多相片,可以在这里看到:相册

Canon EOS M3 小记

  一直以来有个习惯就是在购入新的东西,一定要写个“开箱”来分享下,不然算是白买了。不过这篇文章或许已不算是开箱了,毕竟已购入快半年之久,才记起该写点什么。也许沉淀一下,才更有价值。Canon EOS M3可以说是在15年购入的最纠结的一样东西了。若要简单点来描述,只能是:“出生名门子弟,靠着巨人肩膀”。

  之所以想要个微单,无非是看中它的便携性,和大多数人一样,毫无异义。在去年先后将单反的镜头升至L级后,带来更强劲的性能的同时重量也显著增加,其次更多的考虑是什么样场合该用什么样的器材,才能最高效的完成任务。自然专业的设备应该用于更专业的场合,从去年一年的拍摄来看,绝大部分是属于随手拍,纪录走过路过的一些所见所闻,若是举着单反未免杀鸡用牛刀了,因此微单顺利进入了心愿单。

  微单的可选择性很多,最初考虑的有这三款:Fujifilm x100t, Richo GR II, EOS M3。简单聊下这三个相机的特点,首先三个相机的传感器画幅都是APS-C,可以认为同样条件下画质不会有太大差异。x100t和GR一样采用不可换镜头设计,因此保证镜头成像质量的同时大幅缩小镜头体积,尤其是GR镜头收起来后简直就是个卡片机,还不用惦记着镜头盖,自然是最便携,素有口袋王之称。之所以没有考虑其一是光圈仅2.8,对于崇拜焦外如奶油般化开的我来说,毫无诱惑力。其二是GR II居然只憋出了个限量版,捆绑一堆附件,价格居高不下,不得不让人怀疑是在卖情怀。x100t拥有复古设计,光学旁轴取景(OVF),这无疑是最为经典。个人觉得睁一只眼闭一只眼的取景,让相机位置更接近人眼有利于捕捉瞬间。采用OVF更大的好处是极为省电,700张应该是不成问题,足以应付2~3天短途旅行。至于缺点嘛,体积还是略微较大,可能为了照顾手感,fuji并没有将x100t设计的更为紧凑。剩下的就是M3了,这货最大的优点居然是便宜,全新的日版仅2k出头,与其搭配的22神饼拆机头也仅500左右,不得不被这新价比给感动了,更别说完美转接佳能EF镜头和闪光灯。这也就是为什么之前提到的出生名门了。

DSCF2816

  去年8月份在日亚下单,使用至今,也发现过许多问题,最主要的还是对焦太慢,尤其是夜景,来回两次,人早就离开最佳位置了。对焦框也是奇大无比,常常对到主体后面去。耗电也是夸张的很,满电撑死250多张。很明显对焦这一套是从单反上的实时取景扒过来的,真够懒的。以至于用了两个月就打算出掉了,挂在咸鱼上一周便有不少人咨询,后来还是放弃了,想想其实微单都有这样的通病,只是习惯了单反那种爽快,干脆利落。

  直到今天,给M3整了一个国家地理NG1153包,拍照,开心就好。

IMG_1370