阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 16182阅读
  • 6回复

[免费公测]【阿里云产品公测】ACE下上传文件永久存储实践

级别: 小白
发帖
17
云币
130
本帖主要内容: JcYY*p  
阿里ACE下,我是如何实现让上传的文件永久保存的? Z0H_l/g  
本文以PHP为例,具体知识点如下: bx2<WdLyT  
第一,扩展服务“存储服务(Storage)”的入门基础; 0= bXL!]  
第二,如何结合实际项目使用; eXsp0!v  
v$@1q9 5J  
        
;yqHt!N  
" ]k}V2l  
shdzkET8N  
写教程前,先发发牢骚吧! H/`@6, j  
我为什么要用云引擎ACE?因为我讨厌天天去更新系统、打补丁和查日志等等,这么专业的东西还是交给阿里云的高手们吧,我只管开发系统就好了,这叫分工明确! ye(av&Hn  
IHCxM|/k(M  
我为什么不写怎样创建应用、svn上传文件、伪静态配置等关键步骤?阿里云官方不是已经一步步清清楚楚地写在哪里吗?重写一次好像没多大意义吧?不知道的参考网址:http://ace.aliapp.com/php/quick-start.mdhttps://github.com/AliCloudEngine/doc/wiki 88:YU4:l`N  
a{e 2*V  
我为什么要写这样一篇教程?因为不管你用阿里云的ACE、百度的BAE、新浪的SAE、京东云的JAE、还是腾讯云的弹性web服务等,都会看见有类似的一句话“提供任意目录和文件写入能力, 但不建议在本地磁盘写文件。任何的本地文件写入、修改将视为临时行为,永久性写入请使用……”,那意味着什么?出现系统崩溃或其他原因时,有可能让你传上去或写进去的文件丢失!要知道数据时最重要的,所以要想办法合理使用数据库和云存储去解决此问题 Muq~p~m}  
QsPg4y3?D  
个人建议:如果要求高的话,尽量使用独立数据库和开放存储服务,因为共享、免费,意味着人多、存在不稳定!  l #]#_  
z|],s]F>G  
        
|Wck-+}U  
e/x 9@1s#  
yz,_\{}  
扩展服务“存储服务(Storage)”的入门基础: @ g`|ob]9  
第一步,创建一个存储空间,名字随意,建议还是和ACE的应用ID一致,方便己辨别: I AUc.VH  
M`Wk@t6>  
A>Qu`%g*  
F@ |(  
JgHYuLB  
官方提供的方法(https://github.com/AliCloudEngine/doc/wiki/ace-php-sdk-guide-storage),会发现没有获取列表的方法,因为官方已经说明不支持管控功能,需要完整的存储服务管控功能请使用OSS;在教程后面,我会展示如何去自己实现文件管理功能,但不排除以后阿里云会关闭,所以还是建议按官网说的尽量使用付费的OSS %AqI'ObC  
3rZPVR$))  
im+g |9@%  
%*<Wf4P"  
K&{ _s  
Wn=I[K&&  
实例一:如何上传文件到OSSStorage)? (测试地址:http://taishan520.aliapp.com/storage/demo1/) (p' /a.bn  
ukW L3  
QTF1~A\  
k[pk R{e  
/_expSPHl  
F#Pn]  
实例二:如何从OSSStorage)上获取文件到本地?(测试地址:http://taishan520.aliapp.com/storage/demo2/) Je"XIhBr  
c>c4IQ&d  
U+ Yu_=o{  
dKXzFyW  
其中【etag】为文件的MD5值,所以如果要查证文件是否上传完整,可以通过比较OSS(storage)上文件和本地文件的MD5值和文件长度来判定。 n/BoK6g  
w .M  
e50xcf1u  
zcOm"-E-  
删除文件、移动文件和复制文件等方法就不一一写出来,下面来写一些官方没有明确写出来的文件列表方法。 l.;^w  
实例三:如何从OSSStorage)上获取文件列表?(测试地址:http://taishan520.aliapp.com/storage/demo4/) ,0nrSJED  
3*7klu  
$%&OaAg  
i-WP#\s  
K'E)?NW69  
        
&01KHJY)/G  
j+lcj&V#  
如何结合实际项目使用: !w!k0z]  
实例四:文件上传,并保存到OSSStorage)上;(测试地址:http://taishan520.aliapp.com/)(如果想不影响客户,文件可以先不上传到OSSStorage),然后专门做一个文件同步的处理页面,利用扩展服务里的“定时任务服务(Cron)”来定期执行同步处理页面。) 6"[,  
vkYiO]y  
hDoFF8)c  
AEFd,;GF  
;3Z?MQe"NQ  
&`]T# ">  
实例五:OSSStorage)文件管理(测试地址:http://taishan520.aliapp.com/storage_list.php)(附加说明:由于代码较长,如想查看全部内容请下载附件) M3d%$q)<rW  
如果“同步到本地”为灰色不可点,则说明本地已经存在。 ycIcM~<4  
)#? K2E  
Az?^4 1r8  
r4?|sAK  
VGCd)&s  
实例六:本地文件管理(测试地址:http://taishan520.aliapp.com/bendi_list.php)(附加说明:由于代码较长,如想查看全部内容请下载附件) +n &8" )  
(注意:对于需要进行本地文件管理的必须关闭自动永久同步,因为如果你不关闭的情况下,运行本地文件管理“bendi_list.php”,会发现只能看见通过svn上传上去的文件,而不能查看到通过页面上传的文件,但通过“file_exists”函数加路径(例如:file_exists(‘upload/logo.png’))来检索文件是否存在时,返回的结果是存在的。具体为什么,那就要问阿里云的设计人员了。个人感觉可能是因为要实现文件永久保存,所以变化的文件不能存放在临时运行环境。) 5VVU%STP  
(个人建议:还是宁愿不要用本地管理,保留自动永久同步,这样也算上传资料双备份了,不过就是要牺牲一下性能了。) p~(STHDe#  
olHmRJ  
(\ |Go-2G  
同样,灰色代表文件已经在OSS上存在了。 (II#9 n)  
xj]^<oi<  
UQb|J9HY4  
@!!5el {  
!,J] 5$M  
mSEX?so=[  
实例七:实现OSSStorage)文件和本地文件同步(测试地址:http://taishan520.aliapp.com/storage_bendi_sync.php) ( p CU:'"  
(什么时候会用到?系统崩溃后重启发现上传的文件没了,或者使用集群模式模式,在切换到新机器时等等,也就是发现上传文件在本地没有了的情况下去执行。) mZnsr@KF  
(附加说明,此处写的方法只适合只有少数文件需要同步时使用,因为怕出现处理时间较长导致运行出错。如果文件较多,最好使用只读取文件列表到客户端的浏览器,再使用脚本语言利用Ajax来逐个文件或文件夹处理同步并返回处理结果。) #2*R0_b  
功能说明:【从OSSStorage)获取文件到本地】即单向同步,例如:OSSStorage)存在文件AB,本地存在文件BC,则同步后,OSSStorage)上的文件不变,本地变成存在文件ABC;【从本地备份文件到OSSStorage)】与【从OSSStorage)获取文件到本地】同理,【OSSStorage)与本地双向同步】是指双向同步,例如:OSSStorage)存在文件AB,本地存在文件BC,则同步后,OSSStorage)和本地的文件都存在ABC;(附加说明:这里没有严格去比较哪个文件最新,只是简单的先本地备份到OSSStorage),再从OSSStorage)获取文件到本地。) P+e{,~o  
 z' 5  
v>j<ky   
^>fr+3a"P  
@c>MROlrlF  
6OtNWbB  
题外话: 2c*}1 _  
原本打算弄一个完善点管理OSSStorage)的功能和界面的,但由于官网没有提供明细的listObject使用方法,只好免了,因为好像看见默认方式是(MaxKeys=100),所以还是感觉很多功能限制。 $P #KL//  
.F\[AD 5  
个人建议: 7PO]\X^(zE  
既然有listObject方法,就明细点写出来分享给大家使用,即使官网不去完善地写也有其他高手去代劳,那当然,我不是高手!~~~不会又是想跟我说,若您需要完整的存储服务管控功能,可在阿里云官网开通“开放存储服务OSS”。 + =U9<8  
TyR@3H  
L5wFbc"u  
案例代码: g/i.b&  
下载地址:http://taishan520.aliapp.com/ace_test.rar {s2eOL5I|%  
B+c,3@)x  
http://pan.baidu.com/s/1eQgUZMM |B2>}Y/  
BY$L[U;@T  
9S5C{~P4  
Jg.^h1>x  
[ 此帖被ccp330在2014-10-27 20:10重新编辑 ]
本帖最近评分记录: 4 条评分 云币 +27
mikewhite 云币 +1 您的无私奉献精神值得我们学习!向您致敬! 2016-01-29
dw128 云币 +1 您的无私奉献精神值得我们学习!向您致敬! 2014-11-16
qiujin2012 云币 +20 支持他,就给他投票,猛戳: http://bbs.aliyun.com/read/178799.html 2014-10-30
小猪猪 云币 +5 您的无私奉献精神值得我们学习!向您致敬! 2014-10-28
发帖
994
云币
1363
只看该作者 沙发  发表于: 2014-10-30
支持他,就给他投票,猛戳: |1m2h]];Q  
http://bbs.aliyun.com/read/178799.html
〉〉论坛经验-《阿里云服务器从入门到精通》精华汇总
http://bbs.aliyun.com/read/135619.html?amp;displayMode=1#tpc
级别: 小白
发帖
23
云币
9
只看该作者 板凳  发表于: 2014-11-16
您的无私奉献精神值得我们学习!向您致敬!
发帖
1416
云币
1183
只看该作者 地板  发表于: 2014-11-18
那个楼主,基本上这篇公测文章写得非常到位! %kV #UzL  
e0`5PVJ  
lz 的问题我们已经收到并已经做了修改,ace storage的文档 http://ace.aliapp.com/php/sdk/storage.md KKNQ+'?  
2@|,VN V6~  
另外,强烈建议lz 继续开发 storage 管理器,我们会考虑将你的管理器列入官方文档的推荐工具中。 @ "/:Omh  
|) CfO4  
更多问题可直接联系我。旺旺:堆栈
千万级PV站点解决方案ACE官方旺旺群: 1016033632
php FAQ: http://bbs.aliyun.com/read/153115.html
ACE官方文档 http://ace.aliapp.com/
级别: 菜鸟
发帖
36
云币
3
只看该作者 4楼 发表于: 2014-11-19
Re【阿里云产品公测】ACE下上传文件永久存储实践
学习了。
级别: 小白
发帖
1
云币
1
只看该作者 5楼 发表于: 2015-05-03
Re【阿里云产品公测】ACE下上传文件永久存储实践
这是个好东本
级别: 码农
发帖
121
云币
141
只看该作者 6楼 发表于: 2015-05-08
Re【阿里云产品公测】ACE下上传文件永久存储实践
好东西!!!顶一下!欢迎大家访问我的个人网站!http://www.lichuangcheng.com
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: 5 + 16 = ?
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)