TAE文件存储服务采用阿里云开放存储服务(Open Storage Service,简称OSS)来支持任意数据类型的存储,支持任意时间、地点的数据上传和下载。OSS中每个存储对象(object)由名称、内容、描述三部分组成。通过OSS可以获得更稳定更安全的存储服务,使开发大容量和高并发系统变得更容易。
方法 |
参数 |
返回值 |
说明 |
get |
$object |
boolean|string 失败返回false,如果传入$path成功返回true,未传$path则成功返回文件内容 |
本方法将取出$object的内容并保存到$path的路径。 |
getMeta |
$object |
array |
取得文件的元信息 |
saveText |
$object, |
boolean |
将$content的内容保存到名为$object的位置, |
saveFile |
$object, |
boolean |
将本地文件$file上传到$object的位置 |
fileExists |
$object |
boolean |
检查$object是否存在 |
delete |
$object |
boolean |
删除$object |
move |
$from, $to |
boolean |
将Storage上的文件$from移动到$to的位置($to是新的文件名) |
copy |
$from, $to |
boolean |
将Storage上的文件$from复制到$to的位置($to是新的文件名) |
listObject |
$prefix, $maxkeys |
boolean |
显示storage上$prefix目录下的文件,最多显示$maxkeys个文件(不能超过100) |
//用法一(使用默认别名): $object = Alibaba::Storage()->get('object'); # 在使用命名空间 (namespace) 时, 记得加 "\" $Storage = \Alibaba::Storage(); //用法二: $Storage = Alibaba::Storage('别名'); $res = $Storage->saveText("_the_test_case_key", "anything", 30); // 30s 过期,可不填,意为永不过期 echo '通过文本上传文件:'; var_dump($res); echo '检查文件是否存在:'; $res = $Storage->fileExists("显然不存在的object"); var_dump($res); $res = $Storage->fileExists("_the_test_case_key"); var_dump($res); echo '取得meta信息:'; $res = $Storage->getMeta("_the_test_case_key"); var_dump($res); echo '通过本地文件上传文件:'; $res = $Storage->saveFile("_the_test_case_key", "./1.txt"); var_dump($res); echo '拷贝文件(预期成功):'; $res = $Storage->move("_the_test_case_key", "_the_test_case_key_1"); var_dump($res); echo '删除:'; $res = $Storage->delete("_the_test_case_key"); var_dump($res); echo '移动文件(预期失败):'; $res = $Storage->move("_the_test_case_key", "_the_test_case_key_1"); var_dump($res); echo '获取 object:'; $res = $Storage->get("_the_test_case_key_1"); echo '获取文件内容保存到指定文件:'; // 这里注意, 如果 "_the_test_case_key_1" 不存在, 那么 "/tmp/my.file" 会被删除 $res = $Storage->get("_the_test_case_key_1", "/tmp/my.file"); if($res) { echo '获取文件成功.'; } echo '删除:'; $res = $Storage->delete("_the_test_case_key_1"); echo '列出 webroot 下的目录和文件'; $res = $Storage->listObject('webroot/', 30); //显示storage上webroot目录下的文件,最多显示30个文件,显示根目录则填写空字符串 echo '列出 web 为前缀的文件和目录'; $res = $Storage->listObject('web', 30); // 这边会显示根目录下所有以 web 开头的文件和目录
$config = array( 'id' => '', 'key' => '', 'bucket' => '' ); $cache = Alibaba::Storage($config); 注意目前非杭州机房以外的 oss 帐号支持不完全可行,可尝试设置 endpoint: $config = array( 'id' => 'xx', 'key' => 'xx', 'bucket' => 'xx', 'endpoint' => 'oss.aliyuncs.com' ); $cache = Alibaba::Storage($config);