Submitted by gouki on 2013, August 9, 2:28 PM
如题。。。失误
不过,过段时间可能我就会上一个镜像站了。(还在考虑中,主要是费用太高了)
目前,有一个40刀的香港VPS在使用,还有当前这个VPS差不多20刀。每月开销60刀左右,压力有点大
还有一个专门用来爬梯子的VPS,很小,一年15刀
还有一个早年的VPS,到10月分。一年36刀
即:到10月左右 ,还剩3个VPS在使用。有压力啊。。。
Misc | 评论:0
| 阅读:13551
Submitted by gouki on 2012, July 4, 10:49 AM
说明:紅色的字是最近更新的內容,如果你對又拍雲有興趣 ,你可以加2473635949的QQ,也可以向她諮詢又拍雲的相關問題。嗯,沒看錯,是女字旁的她。或者尝试加QQ群:229209212。
-------------------
这是我这两天通过测试和向客服咨询的结果,为一些想用又拍的朋友提供一点资料 吧。
关于又拍云的几个问题:(这些是我在测试的时候遇到的问题,括号内是客服的回答)
1、缩略图算在空间容量内吗?(客服回答:不计空间容量内)
2、我们原来的项目中,缩略图是:aaaa.jpg,生成的缩图为aaaa.t100x100.jpg。而又拍却是aaa.jpg!t100x100.jpg,这个对我们的改动有点大。(这个需要客户端改程序)
3、我们原有的图片用什么方式上传到又拍比较合适?(我们原有的项目,必须要以FTP先传上去才OK)
4、有没有自动同步工具?比如我们本地生成了图片,然后能够自动同步到又拍?有没有好的建议和思路,还是说需要我们每上传一张图片,都要自动往又拍上传一次?(每次生成图片,都必须往又拍上传一次)
5、当第一次访问时,缩图不存在的时候,它的返回状态是什么?404?200?还是其他?(缩略图是在创建好后第一次访问的时候自动生成,如果不存在提示 404)
6、流量是按月计费还是按实际计费?因为又拍有CDN,所以,如果是按实际计费,这个CDN被访问的费用如何计入?(流量计费没有时间限制,直到用完为止。CDN 不另外计费,只会计算产生的流量。)
7、图片可以设置有权限访问,比如我们设置了一个密钥:xyz,那么实际图片为:abc.jpg时,访问的时候就需要通过abc.jpg!xyz,才能访问(该功能对缩略图无效,适合将来有可能的收费图片)
8、是否可以批量删除图片,如删除一年前的图片(不可以,只能用接口删除,但如果程序中一年前的图片都在同一个目录 下面,可以通过FTP将该目录 删除 )
9、上传图片到服务器上后,需要0~25分钟才能分发到各个节点。在这个时候,如果访问它。会出现什么样的情况?是从主节点访问?还是会出现404文件不存在?(因为用户第一次访问,如果节点(比如广东节点)不存在的话,会通过内部网络到源站获取,然后显示给客户,同时保存在节点机房中,也就是,你只要文件上传成功就全国各地都可以访问到了 )
10、缩略图的尺寸调整了。会影响吗?比如,尺寸100x100,后来我调成101x101了,原来的100x100的图对我是否有影响(只要原图没有去动过是没关系的。)
费用计算:
1、存储费用:
存储空间1G1元钱,即,如果附件是1000G,存储费用为1000元,这是按月计费,即一年为12000元
实际计算如下,粗略是当成每G 1元,比较容易计算:
• 0-10GB:0.9元/GB/月
• 10-50GB:0.819元/GB/月
• 50-100GB:0.738元/GB/月
• 100-500GB:0.69元/GB/月
• 500-1000GB:0.609元/GB/月
• 1000-5000GB:0.531元/GB/月
• 5000-10000GB:0.489元/GB/月
• 10000GB以上:0.45元/GB/月
2、流量费用:
▪ 100G 99元
▪ 250G 199元
▪ 600G 399元
▪ 1000G 599元
流量无时间限制,用完为止,用完后需要及时充值,否则可能会出现无法访问的情况
---------------
在我之前有很多人用过了。可惜我目前还没有优惠码。黑黑
Tags: 又拍云
| 评论:0
| 阅读:15863
Submitted by gouki on 2012, February 16, 5:58 PM
备份一个JS,不是为了代码很优秀,而是。。。想直接用里面的事件,就当成参考了:
JavaScript代码
- var media_events=new Array();
-
- media_events["loadstart"]=0;
- media_events["progress"]=0;
- media_events["suspend"]=0;
- media_events["abort"]=0;
- media_events["error"]=0;
- media_events["emptied"]=0;
- media_events["stalled"]=0;
- media_events["loadedmetadata"]=0;
- media_events["loadeddata"]=0;
- media_events["canplay"]=0;
- media_events["canplaythrough"]=0;
- media_events["playing"]=0;
- media_events["waiting"]=0;
- media_events["seeking"]=0;
- media_events["seeked"]=0;
- media_events["ended"]=0;
- media_events["durationchange"]=0;
- media_events["timeupdate"]=0;
- media_events["play"]=0;
- media_events["pause"]=0;
- media_events["ratechange"]=0;
- media_events["volumechange"]=0;
- var media_controller_events=new Array();
-
- media_controller_events["emptied"]=0;
- media_controller_events["loadedmetadata"]=0;
- media_controller_events["loadeddata"]=0;
- media_controller_events["canplay"]=0;
- media_controller_events["canplaythrough"]=0;
- media_controller_events["playing"]=0;
- media_controller_events["ended"]=0;
- media_controller_events["waiting"]=0;
- media_controller_events["durationchange"]=0;
- media_controller_events["timeupdate"]=0;
- media_controller_events["play"]=0;
- media_controller_events["pause"]=0;
- media_controller_events["ratechange"]=0;
- media_controller_events["volumechange"]=0;
-
- var media_properties=[ "error","src","currentSrc","crossOrigin","networkState","preload","buffered","readyState","seeking","currentTime","initialTime","duration","startOffsetTime","paused","defaultPlaybackRate","playbackRate","played","seekable","ended","autoplay","loop","mediaGroup","controller","controls","volume","muted","defaultMuted","audioTracks","videoTracks","textTracks","width","height","videoWidth","videoHeight","poster" ];
- var media_properties_elts=null;
- var webm=null;
- function init(){
- document._video=document.getElementById("video");
- webm=document.getElementById("webm");
- init_events();
- init_properties();
- init_mediatypes();
-
- setInterval(update_properties,500);
- }
- document.addEventListener("DOMContentLoaded",init,false);
- function init_events(){
- for(key in media_events){
- document._video.addEventListener(key,capture,false);
- }
- var tbody=document.getElementById("events");
- var i=1;
- var tr=null;
- for(key in media_events){
- if(tr==null) tr=document.createElement("tr");
- var th=document.createElement("th");
- th.textContent=key;
- var td=document.createElement("td");
- td.setAttribute("id","e_"+key);
- td.innerHTML="0";
- td.className="false";
- tr.appendChild(th);
- tr.appendChild(td);
- if((i++%5)==0){
- tbody.appendChild(tr);
- tr=null;
- }
- }
- if(tr!=null) tbody.appendChild(tr);
- }
- function init_properties(){
- var tbody=document.getElementById("properties");
- var i=0;
- var tr=null;
- media_properties_elts=new Array(media_properties.length);
- do{
- if(tr==null) tr=document.createElement("tr");
- var th=document.createElement("th");
- th.textContent=media_properties[i];
- var td=document.createElement("td");
- td.setAttribute("id","p_"+media_properties[i]);
- var r=eval("document._video."+media_properties[i]);
- td.innerHTML=r;
- if(typeof(r)!="undefined"){
- td.className="true";
- }else{
- td.className="false";
- }
- tr.appendChild(th);
- tr.appendChild(td);
- media_properties_elts[i]=td;
- if((++i%3)==0){
- tbody.appendChild(tr);
- tr=null;
- }
- }while(i<media_properties.length);
- if(tr!=null) tbody.appendChild(tr);
- }
- function init_mediatypes(){
- var tbody=document.getElementById("m_video");
- var i=0;
- var tr=document.createElement("tr");
- var videoTypes=[ "video/ogg","video/mp4","video/webm" ];
- i=0;
- tr=document.createElement("tr");
- do{
- var td=document.createElement("th");
- td.innerHTML=videoTypes[i];
- tr.appendChild(td);
- }while(++i<videoTypes.length);
- tbody.appendChild(tr);
- i=0;
- tr=document.createElement("tr");
- if(!!document._video.canPlayType){
- do{
- var td=document.createElement("td");
- var support=document._video.canPlayType(videoTypes[i]);
- td.innerHTML='"'+support+'"';
- if(support==="maybe"){
- td.className="true";
- }else if(support===""){
- td.className="false";
- }
- tr.appendChild(td);
- }while(++i<videoTypes.length);
- tbody.appendChild(tr);
- }
- }
- function capture(event){
- media_events[event.type]=media_events[event.type]+1;
- for(key in media_events){
- var e=document.getElementById("e_"+key);
- if(e){
- e.innerHTML=media_events[key];
- if(media_events[key]>0) e.className="true";
- }
- }
- update_properties();
- }
- function update_properties(){
- var i=0;
- for(key in media_properties){
- var val=eval("document._video."+media_properties[key]);
-
-
-
-
-
- media_properties_elts[i++].innerHTML=val;
- }
- if(!!document._video.audioTracks){
- var td=document.getElementById("m_audiotracks");
- td.innerHTML=document._video.audioTracks.length;
- td.className="true";
- }
- if(!!document._video.videoTracks){
- var td=document.getElementById("m_videotracks");
- td.innerHTML=document._video.videoTracks.length;
- td.className="true";
- }
- if(!!document._video.textTracks){
- var td=document.getElementById("m_texttracks");
- td.innerHTML=document._video.textTracks.length;
- td.className="true";
- }
- }
- var videos=new Array();
- videos[0]=[
- "http://media.w3.org/2010/05/sintel/poster.png","http://media.w3.org/2010/05/sintel/trailer.mp4","http://media.w3.org/2010/05/sintel/trailer.ogv","http://media.w3.org/2010/05/sintel/trailer.webm"
- ];
- videos[1]=[
- "http://media.w3.org/2010/05/bunny/poster.png","http://media.w3.org/2010/05/bunny/trailer.mp4","http://media.w3.org/2010/05/bunny/trailer.ogv"
- ];
- videos[2]=[
- "http://media.w3.org/2010/05/bunny/poster.png","http://media.w3.org/2010/05/bunny/movie.mp4","http://media.w3.org/2010/05/bunny/movie.ogv"
- ];
- videos[3]=[
- "http://media.w3.org/2010/05/video/poster.png","http://media.w3.org/2010/05/video/movie_300.mp4","http://media.w3.org/2010/05/video/movie_300.ogv","http://media.w3.org/2010/05/video/movie_300.webm"
- ];
- function switchVideo(n){
- if(n>=videos.length) n=0;
- var mp4=document.getElementById("mp4");
- var ogv=document.getElementById("ogv");
- var parent=ogv.parentNode;
- document._video.setAttribute("poster",videos[n][0]);
- mp4.setAttribute("src",videos[n][1]);
- ogv.setAttribute("src",videos[n][2]);
- if(videos[n][3]){
- if(webm.parentNode==null){
- parent.insertBefore(webm,ogv);
- }
- webm.setAttribute("src",videos[n][3]);
- }else{
- if(webm.parentNode!=null){
- parent.removeChild(webm);
- }
- }
- document._video.load();
- }
这一段JS是从http://www.w3.org/2010/05/video/mediaevents.html拷贝而来,具体的演示就在这个页面了。我是想知道video标签中的一些事件。controller_event几乎用不到。
中文说明这里有:http://directguo.com/blog/index.php/2010/07/html5-audio-video-tag/
XML/HTML代码
- //错误状态
- Media.error; //null:正常
- Media.error.code; //1.用户终止 2.网络错误 3.解码错误 4.URL无效
-
- //网络状态
- Media.currentSrc; //返回当前资源的URL
- Media.src = value; //返回或设置当前资源的URL
- Media.canPlayType(type); //是否能播放某种格式的资源
- Media.networkState; //0.此元素未初始化 1.正常但没有使用网络 2.正在下载数据 3.没有找到资源
- Media.load(); //重新加载src指定的资源
- Media.buffered; //返回已缓冲区域,TimeRanges
- Media.preload; //none:不预载 metadata:预载资源信息 auto:
-
- //准备状态
- Media.readyState; //1:HAVE_NOTHING 2:HAVE_METADATA 3.HAVE_CURRENT_DATA 4.HAVE_FUTURE_DATA 5.HAVE_ENOUGH_DATA
- Media.seeking; //是否正在seeking
-
- //回放状态
- Media.currentTime = value; //当前播放的位置,赋值可改变位置
- Media.startTime; //一般为0,如果为流媒体或者不从0开始的资源,则不为0
- Media.duration; //当前资源长度 流返回无限
- Media.paused; //是否暂停
- Media.defaultPlaybackRate = value;//默认的回放速度,可以设置
- Media.playbackRate = value;//当前播放速度,设置后马上改变
- Media.played; //返回已经播放的区域,TimeRanges,关于此对象见下文
- Media.seekable; //返回可以seek的区域 TimeRanges
- Media.ended; //是否结束
- Media.autoPlay; //是否自动播放
- Media.loop; //是否循环播放
- Media.play(); //播放
- Media.pause(); //暂停
-
- //控制
- Media.controls;//是否有默认控制条
- Media.volume = value; //音量
- Media.muted = value; //静音
-
- //TimeRanges(区域)对象
- TimeRanges.length; //区域段数
- TimeRanges.start(index) //第index段区域的开始位置
- TimeRanges.end(index) //第index段区域的结束位置
借鉴一下。
Tags: html5, video, audio
Javascript | 评论:0
| 阅读:24270
Submitted by gouki on 2011, August 20, 9:54 PM

OK,看我博客的人,可能会看到这个工具条了,嗯,我已经在网站的阅读时候启用了readability这个插件,如果不想看到文章左右的广告的用户,可以点击NOW看一下。当然如果你对文章有兴趣,你可以点击EMAIL发到邮箱。
更重要的是,如果你有kindle,你也可以尝试发送过去。(希望我转载的文章足够吸引人)
放心吧,不要以为很难,其实 你也可以拥有这样的功能。在你的页面上加上这样一段代码就OK了:
<div class="rdbWrapper" data-show-read="1" data-show-send-to-kindle="1" data-show-print="1" data-show-email="1" data-version="1"></div><script type="text/javascript"> (function() { var s = document.getElementsByTagName("script")[0], rdb = document.createElement("script"); rdb.type = "text/javascript"; rdb.async = true; rdb.src = document.location.protocol + "//www.readability.com/embed.js"; s.parentNode.insertBefore(rdb, s); })(); </script>
什么,复制代码无效?没关系,看这里:http://www.readability.com/publishers/tools
你可以自定义你要的样式啦
Tags: readability
Software | 评论:0
| 阅读:19627
Submitted by gouki on 2011, May 4, 7:19 AM
昨天安装的ubuntu到今天也算是差不多有一天了,用起来嘛,没有什么明显的障碍,事实上和以前的区别也不是特别的大,所以其实上我更多的就是在尝试使用新的界面。
安装好ubuntu后,第一步就是update和重新更换语言包,添加五笔输入法,这些搞定后,我接着就是apt-get install sun-java6-jre,然后在运行的时候同时去netbeans.org下载了netbeans,然后更新了我的firefox所有常用插件,并把我在台式机上的收藏夹,密码,同步了回来。再装了svn就一切都几乎和以前一样了。
接着就是一直操作新界面,起初的时候觉得还行,因为就象一个快捷方式在左边或者说状态栏在左边,但紧接而来的问题就是,该界面学苹果学的不像呀。把菜单栏缩在以前的顶部状态栏上,OK,这没问题,但是窗口用着用着就突然无法正常最大化了也不能拖动了,最明显的就是我用firefox的时候,按ctrl+u看源码,居然就随便浮动了一个小窗口在右侧不能放大不能缩小不能移动。害得我源码也无法看。然后鼠标移动到顶部菜单栏后也无法双击放大缩小(那个控制按钮不见了,firefox刚启动的时候会有这些控制按钮),这反而影响了我的工作效率。所以,在使用了两三个小时后,我退出了这个界面,回到了gnome。。。。。
其实,新界面还是很不错的,至少他的程序组菜单就相对比较方便,只是我更喜欢把常用的拖出来(虽然他可以拖到左侧那可以自动隐藏的状态栏上并锁定在上面,但左侧那一条的反应好象不是特别灵敏,或许是我的机器太烂了吧?)
最后插一句,如果想回到gnome,很方法的,注销当前用户,然后登录的时候,界面选择ubuntu classic就OK了,以后会自动认到gnome的。
Tags: ubuntu, netbeans, gnome
苹果相关 | 评论:0
| 阅读:19416