TAE文件存储服务采用阿里云开放存储服务(Open Storage Service,简称OSS)来支持任意数据类型的存储,支持任意时间、地点的数据上传和下载。OSS中每个存储对象(object)由名称、内容、描述三部分组成。通过OSS可以获得更稳定更安全的存储服务,使开发大容量和高并发系统变得更容易。
获取文件存储服务对象
from alibaba import Storage storage = Storage () //创建对象时不加参数会连接默认的Storage实例
也可在创建对象时指定Storage实例 如“alias”:
storage = Storage (“alias”)
在TAE控制台中,通过工作站->FileStore->获取、管理实例
storage. save_text(object,content, [, exp]) 方法
/** * 将content的内容保存到名为object的位置,exp为过期时间(可选)。 存储文件的父目录如果没有,会自动创建。 * @param object要存储文件的全路径 * @param content要存储的内容, 不能为空null * @return 存储成功返回True,失败返回False */
storage. save_file(object,file) 方法
/** *将本地文件file上传到object的位置。 * @param object要存储文件的全路径 * @param file本地文件路径 * @return 存储成功返回True,失败返回False */
storage. get(object,[, path])方法
/** * 获取object文件的内容。 * 如传入path参数,将取出object所对应文件的内容并保存到path的路径, * 如果不传入path,则直接返回object所对应文件的内容。 * @param object要存储文件的全路径 * @param path要保存的本地路径(可选) * @return 如传入path 存储成功返回True,失败返回False。不传入path返回content */
storage.move(from,to) 方法
/** * 移动文件 * @param from要移动文件的全路径 * @param to 要移动目的地的全路径 * @return移动成功返回True,失败返回False。 */
storage.copy(from,to) 方法
/** * 复制文件 * @param from要复制文件的全路径 * @param to 要复制目的地的全路径 * @return复制成功返回True,失败返回False。 */
storage.delete(object) 方法
/** *删除文件 * @param object 要删除文件的全路径 * @return删除成功返回True,失败返回False。 */
storage. is_exist(object) 方法
/**
* 判断文件是否存在
* @param object 要判断文件的全路径
* @return如果存在,返回True否则,返回False
*/
文件存储服务使用示例
import alibaba storage = alibaba.Storage() object = storage.get('object') res = storage.save_text("_the_test_case_key", "anything") print '检查文件是否存在 (预期失败):' res = storage.fileExists("显然不存在的object") print '检查文件是否存在 (预期成功):' res = storage.fileExists("_the_test_case_key") print '通过本地文件上传文件:' res = storage.save_file("_the_test_case_key", "./1.txt") print '拷贝文件(预期成功):' res = storage.move("_the_test_case_key", "_the_test_case_key_1") print '移动文件(预期失败):' res = storage.move("_the_test_case_key", "_the_test_case_key_1") print '删除:' res = storage.delete("_the_test_case_key") print '获取 object:' res = storage.get("_the_test_case_key_1") print '获取文件内容保存到指定文件:' // 这里注意, 如果 "_the_test_case_key_1" 不存在, 那么 "/tmp/my.file" 会被删除 res = storage.get("_the_test_case_key_1", "/tmp/my.file") if res: print '获取文件成功.' print '删除:' res = storage.delete("_the_test_case_key_1")