本帖主要内容:
;$,=VB:'  
在阿里云的ACE下,我是如何实现让上传的文件永久保存的? ,%"!8T  
本文以PHP为例,具体知识点如下: WD#
96V  
第一,扩展服务“存储服务(Storage)”的入门基础; uzg(C#sp  
第二,如何结合实际项目使用; \ne1Xu:hM  
uP, iGA  
        

?lq  
2 j.6  
]8q#@%v}  
写教程前,先发发牢骚吧! M.fAFL  
我为什么要用云引擎ACE?因为我讨厌天天去更新系统、打补丁和查日志等等,这么专业的东西还是交给阿里云的高手们吧,我只管开发系统就好了,这叫分工明确! K8#MQR2@  
B-^r0/y;  
我为什么不写怎样创建应用、svn上传文件、伪静态配置等关键步骤呢?阿里云官方不是已经一步步清清楚楚地写在哪里吗?重写一次好像没多大意义吧?不知道的参考网址:http://ace.aliapp.com/php/quick-start.md或https://github.com/AliCloudEngine/doc/wiki W*S}^6ZT`  
j5m KJC  
我为什么要写这样一篇教程?因为不管你用阿里云的ACE、百度的BAE、新浪的SAE、京东云的JAE、还是腾讯云的弹性web服务等,都会看见有类似的一句话“提供任意目录和文件写入能力, 但不建议在本地磁盘写文件。任何的本地文件写入、修改将视为临时行为,永久性写入请使用……”,那意味着什么?出现系统崩溃或其他原因时,有可能让你传上去或写进去的文件丢失!要知道数据时最重要的,所以要想办法合理使用数据库和云存储去解决此问题。 ]QKo>7%[  
F
t/yPv  
个人建议:如果要求高的话,尽量使用独立数据库和开放存储服务,因为共享、免费,意味着人多、存在不稳定! '
`
_TFTO  
,ZGU\t  
        

ICck 0S!  
mi[t1cN)=  
PAng(tubl  
扩展服务“存储服务(Storage)”的入门基础: &O
+?#3  
第一步,创建一个存储空间,名字随意,建议还是和ACE的应用ID一致,方便自己辨别: >~@O\n-t  
  F>Pr`T?>  
Hjhgu=  
fGZ56eH:  
#[f]-c(!  
官方提供的方法(https://github.com/AliCloudEngine/doc/wiki/ace-php-sdk-guide-storage),会发现没有获取列表的方法,因为官方已经说明不支持管控功能,需要完整的存储服务管控功能请使用OSS;在教程后面,我会展示如何去自己实现文件管理功能,但不排除以后阿里云会关闭,所以还是建议按官网说的尽量使用付费的OSS! q QcQnd2K  
  nQGl]2  
n%|og^\0  
:HW| mqKd  
T@wgWE<0y_  
Emy=q5ryl  
实例一:如何上传文件到OSS(Storage)? (测试地址:http://taishan520.aliapp.com/storage/demo1/) QPX&P{!g  
  {W+IUvn  
6ChFsteGFr  
E5aRTDLq  
IR2=dQS  
O&dBLh!G  
实例二:如何从OSS(Storage)上获取文件到本地?(测试地址:http://taishan520.aliapp.com/storage/demo2/) rp9?p%  
  Hf/ZaBn  
<%o9*)F  
)J*M{Gm6i  
其中【etag】为文件的MD5值,所以如果要查证文件是否上传完整,可以通过比较OSS(storage)上文件和本地文件的MD5值和文件长度来判定。 dI%?uk  
]p8zT|bv  
;,8 )%[  
Brtsig,4  
删除文件、移动文件和复制文件等方法就不一一写出来,下面来写一些官方没有明确写出来的文件列表方法。 +GJPj(S  
实例三:如何从OSS(Storage)上获取文件列表?(测试地址:http://taishan520.aliapp.com/storage/demo4/) /#WvC;B  
  ]_BH"ng}  
8.,d`~  
@Jx1n Q^  
H;R~d%!b  
        

q<j9l'dHG  
f8
BZkh  
如何结合实际项目使用: cYp/? \  
实例四:文件上传,并保存到OSS(Storage)上;(测试地址:http://taishan520.aliapp.com/)(如果想不影响客户,文件可以先不上传到OSS(Storage),然后专门做一个文件同步的处理页面,利用扩展服务里的“定时任务服务(Cron)”来定期执行同步处理页面。) yR?./M!  
  h!@7'Q  
|kH.o=  
c]h@<wnv  
IyI0|&r2A  
)=#e*1!b  
实例五:OSS(Storage)文件管理(测试地址:http://taishan520.aliapp.com/storage_list.php)(附加说明:由于代码较长,如想查看全部内容请下载附件) tLi91)oG  
如果“同步到本地”为灰色不可点,则说明本地已经存在。 9: .m]QN  
  42~.N=2  
R#T
6]  
DK
eB%k  
w3ATsIw  
实例六:本地文件管理(测试地址:http://taishan520.aliapp.com/bendi_list.php)(附加说明:由于代码较长,如想查看全部内容请下载附件) m.p$f$A_  
(注意:对于需要进行本地文件管理的必须关闭自动永久同步,因为如果你不关闭的情况下,运行本地文件管理“bendi_list.php”,会发现只能看见通过svn上传上去的文件,而不能查看到通过页面上传的文件,但通过“file_exists”函数加路径(例如:file_exists(‘upload/logo.png’))来检索文件是否存在时,返回的结果是存在的。具体为什么,那就要问阿里云的设计人员了。个人感觉可能是因为要实现文件永久保存,所以变化的文件不能存放在临时运行环境。) dQ:F5|p  
(个人建议:还是宁愿不要用本地管理,保留自动永久同步,这样也算上传资料双备份了,不过就是要牺牲一下性能了。) ?JG^GD7D  
  DF_wMv:>^  
re_nb)4g  
同样,灰色代表文件已经在OSS上存在了。 {nXygg
J  
  =[8K#PZ$w  
m~
5"q%;  
$[}EV(#y  
7nNNc[d*=  
hf]m'5pb  
实例七:实现OSS(Storage)文件和本地文件同步(测试地址:http://taishan520.aliapp.com/storage_bendi_sync.php) R|}N"J_  
(什么时候会用到?系统崩溃后重启发现上传的文件没了,或者使用集群模式模式,在切换到新机器时等等,也就是发现上传文件在本地没有了的情况下去执行。) 0Dna+V/jI  
(附加说明,此处写的方法只适合只有少数文件需要同步时使用,因为怕出现处理时间较长导致运行出错。如果文件较多,最好使用只读取文件列表到客户端的浏览器,再使用脚本语言利用Ajax来逐个文件或文件夹处理同步并返回处理结果。) jQzl!f1c3  
功能说明:【从OSS(Storage)获取文件到本地】即单向同步,例如:OSS(Storage)存在文件A、B,本地存在文件B、C,则同步后,OSS(Storage)上的文件不变,本地变成存在文件A、B、C;【从本地备份文件到OSS(Storage)】与【从OSS(Storage)获取文件到本地】同理,【OSS(Storage)与本地双向同步】是指双向同步,例如:OSS(Storage)存在文件A、B,本地存在文件B、C,则同步后,OSS(Storage)和本地的文件都存在A、B、C;(附加说明:这里没有严格去比较哪个文件最新,只是简单的先本地备份到OSS(Storage),再从OSS(Storage)获取文件到本地。) -&sY*(:n_  
  =qc+sMo  
y/y~<-|<@  
/ZD6pF  
Hc=QSP  
@`dg:P*[  
题外话: 1Vdi5;dn  
原本打算弄一个完善点管理OSS(Storage)的功能和界面的,但由于官网没有提供明细的listObject使用方法,只好免了,因为好像看见默认方式是(MaxKeys=100),所以还是感觉很多功能限制。 Jr( =Y@Z'  
nV7Vc;  
个人建议: uyxYCc  
既然有listObject方法,就明细点写出来分享给大家使用,即使官网不去完善地写也有其他高手去代劳,那当然,我不是高手!~~~不会又是想跟我说,若您需要完整的存储服务管控功能,可在阿里云官网开通“开放存储服务OSS”。 IO)#O<  
q50F!yHC-  
s@ r{TXEn  
案例代码: '1:)q  
下载地址:http://taishan520.aliapp.com/ace_test.rar ,< x/  
或 Ztg_='n  
http://pan.baidu.com/s/1eQgUZMM 4}h}`KZZ  
^
*"fC  
hr}f5Z)^v

参加活动:http://promotion.aliyun.com/act/aliyun/freebeta/

【阿里云产品公测】ACE下上传文件永久存储实践的更多相关文章

  1. 【阿里云产品公测】以开发者角度看ACE服务『ACE应用构建指南』

    作者:阿里云用户mr_wid ,z)NKt#   @I6A9do   如果感觉该评测对您有所帮助, 欢迎投票给本文: UO<claV   RsfTUb)<   投票标题:  28.[阿里云 ...

  2. 【阿里云产品公测】云引擎ACE初体验

    作者:阿里云用户蓝色之鹰 :RYYjmG5;  来投票支持我把=i2]qj\  序号2. [阿里云产品公测]云引擎ACE初体验:作者:蓝色之鹰 e(OKE7  序号10.[阿里云产品公测]结构化数据服 ...

  3. 【阿里云产品公测】云引擎ACE新手实战基于Wordpress

    [阿里云产品公测]云引擎ACE新手实战基于Wordpress 作者:阿里云用户imnpc ACE(Aliyun Cloud Engine) 是一款弹性.分布式的应用托管环境,支持Java.php多种语 ...

  4. 【阿里云产品公测】阿里云ACE部署通用完整教程及评测

    [阿里云产品公测]阿里云ACE部署通用完整教程及评测 作者:阿里云用户bailimei ACE应该是目前在公测的服务中应用最广泛的一项服务.在公测云引擎ACE前曾使用过新浪SAE,而ACE给我的最初印 ...

  5. 【阿里云产品公测】大数据下精确快速搜索OpenSearch

    [阿里云产品公测]大数据下精确快速搜索OpenSearch 作者:阿里云用户小柒2012 相信做过一两个项目的人都会遇到上级要求做一个类似百度或者谷歌的站内搜索功能.传统的sql查询只能使用like ...

  6. 【阿里云产品公测】利用PTS服务优化网站数据库读写性能

    [阿里云产品公测]利用PTS服务优化网站数据库读写性能 作者:阿里云用户千鸟 写这个帖子主要也是因为在用PTS测试网站的时候,手动访问网站进入报错页面,主要原因是数据库连接对象存在问题,导致并发多的时 ...

  7. 【阿里云产品公测】离线归档OAS,再也不用担心备份空间了

    [阿里云产品公测]离线归档OAS,再也不用担心备份空间了 作者:阿里云用户莫须有3i 1 起步  1.1 初识OAS  啥是OAS,请看官方说明: 引用: 开放归档服务(Open Archive Se ...

  8. 【阿里云产品公测】简单日志服务SLS使用评测 + 教程

    [阿里云产品公测]简单日志服务SLS使用评测 + 教程 评测介绍 被测产品: 简单日志服务SLS 评测环境: 阿里云基础ECS x2(1核, 512M, 1M) 操作系统: CentOS 6.5 x6 ...

  9. 【阿里云产品公测】高大上的搜索服务OpenSearch,你值得拥有!

    [阿里云产品公测]高大上的搜索服务OpenSearch,你值得拥有! 作者:阿里云用户trcher ​ 一.前言: 在OpenSearch没出来之前,就一直想给网站做个搜索功能,虽然网站本身自带搜索功 ...

随机推荐

  1. C#集合之集(set)

    包含不重复元素的集合称为“集(set)”..NET Framework包含两个集HashSet<T>和SortedSet<T>,它们都实现ISet<T>接口.Has ...

  2. Scrapy——settings配置文件

    # -*- coding: utf-8 -*- # Scrapy settings for tencent project # # For simplicity, this file contains ...

  3. 解决视图状态消息验证代码 (MAC) 错误

    https://blog.csdn.net/bingtingabc/article/details/49148745 2015年10月15日 10:05:56 bingtingabc 阅读数:3397 ...

  4. Notepad++配置替换快捷配置

    我们经常会收到实施或客户提供的excel文档,需要将对应的数据从数据库删除,那么我们怎么能快速把excel中的内容加上单引号和逗号到数据库中处理呢,我们可以使用nodepad++中的替换功能. 1.打 ...

  5. mysql编码不统一形成的错误

    错误提示:[Err]1267 - Illegal mix of collations(utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) ...

  6. PCB中的SOLD MASK和阻抗开窗

    应用场合:1 PCB中的贴片的焊盘是不过油的,需要暴露出来用于焊接:对于电机驱动需要大电流的走线需要将走线保留暴露出来不过油,然后在上面走一层锡,增大锡箔,铜箔厚度,增大过流和防过热能力. 方法:先在 ...

  7. Wamp设置虚拟目录

    1. 默认安装 wamp后,工作目录为"..../wamp/www" 也就是PHP文件只有放在此目录下才能打得开,打开Apache的配置文件httpd.conf可以看到: 这么两行 ...

  8. <数据挖掘导论>读书笔记3--分类

    1.分类的基本概念 分类任务就是通过学习得到一个目标函数f,把每个属性集x映射到一个预先定义的类标号y 目标函数也称为分类模型. 2. 解决分类问题的一般方法: 决策树分类法 基于规则的分类法 神经网 ...

  9. SQL索引器

    1.什么是SQL索引器 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息. 数据库索引好比是一本书前面的目录,能加快数据库的查询速度. 例如这样一个查询:se ...

  10. 开发常用的 JavaScript 知识点总结

    No1.语法和类型 1.声明定义 变量类型:var,定义变量:let,定义块域(scope)本地变量:const,定义只读常量.变量格式:以字母.下划线“_”或者$符号开头,大小写敏感.变量赋值:声明 ...