编辑 | blame | 历史 | 原始文档

1. 简介

一般来说,图片/视频流量不走应用服务器,会占用API带宽,会将这类文件存储在对象存储服务器上。

2. 接口

public interface StorageClient {

    /**
     * 保存对象
     * @param request
     * @return
     */
    public StorageResult save(StorageRequest request);

    /**
     * 以私有的方式保存对象
     * @param request
     * @return
     */
    public StoragePrivateResult savePrivate(StorageRequest request);

    /**
     * 删除对象
     * @param url
     * @return
     */
    public boolean delete(String url);

    /**
     * 删除私有对象
     * @param key
     * @return
     */
    public boolean deletePrivate(String key);

    /**
     * 获取私有对象临时访问URL
     * @param key
     * @param expireSec
     * @return
     */
    public String getPrivateUrl(String key, Integer expireSec);

    /**
     * 通过URL获取文件Key
     * @param url
     * @return
     */
    public String getKeyFormUrl(String url);

}

3. 默认实现

support包中默认提供AliStorageClient,MockStorageClient,QCloudStorageClient

mock就相当于只在控制台打印。

4. 使用方法

4.1. 开启

FwObjectStorageProperties 在Properties中,选择实现类 enable=aliyun 或 qcloud 或 mock

4.2. 业务中使用

@Autowired
private StorageClient storageClient;
StorageResult result = storageClient.save(storageRequest);
if (result.isSuc()) {
    ...
}