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);