无线开放 API

图片服务简介

TAE 图片服务基于淘宝网提供的图片存储、 CDN 加速、安全扫描等基础设施,为开发者提供了稳定、高速、安全、易用的在线图片服务。图片服务默认为用户开通了500G 的存储容量,所有这些图片都会自动同步到 CDN 进行下载加速。为方便使用,图片服务在提供多语言编程接口的同时还为用户提供了图形管理界面。目前,图片服务支持的单张最大图片大小为3M,图片格式共支持四种: jpg (jpeg)、gif、bmp、png。

图形界面方式

在控制台选中图片中心,打开如下界面,可以看到包括了:图片上传、图片查看、目录管理和图片管理等功能。
图片上传功能
点击 “修改位置” ,可以修改放置图片的文件夹。
双击图片,可以查看图片详情,右侧支持多尺寸图片。
目录管理
文件查看, 可以选择只查看图片;图片展示模式可以选择列表模式或者大图模式。
   

编程接口

PicService

    public interface PicService{
    /**
    * 上传图片,指定图片全路径,会自动创建相应目录,如果存在同名图片会报错
    * 图片大小限制是3M
    * @param dirpath 目录路径,例如: "/a/b/" 可以为空,如果为空表示根目录
    * @param filename 文件名称,例如: "c.jpg" 可以为空,如果为空系统生成随机文件名
    * @param content 文件内容
    * @return
    */
    public Response<Pic> savePic(String dirpath,String filename,byte[] content);
    /**
    * 根据图片全路径获取图片信息,如果目录不存在或图片不存在,返回response的sucess为false
    *
    * @param imgFullPath 图片全路径,例如:"/a/b/c.pgn" 为空表示根目录
    * @return
    */

    public Response<Pic> getPic(String dirpath,String filename)
    /**
    * 根据图片全路径删除图片,如果目录不存在或图片不存在,返回response的sucess为false
    *
    * @param imgFullPath 图片全路径,例如:"/a/b/c.pgn" ,为空表示根目录
    * @return
    */

    public Response<Void> deletePic(String dirpath,String filename) ;
    /**
    * 获取某个目录路径获取图片列表,如果目录不存在、返回response的sucess为false
    *
    * @param dirpath 目录路径 例如 "/a/b/" ,为空表示根目录
    * @return
    */

    public Response<List<Pic>> getPicList(String dirpath)
    /**
    * 翻页查询:根据目录id获取图片列表,如果目录不存在、返回response的sucess为false
    * @param dirpath 目录路径 例如 "/a/b/" ,为空表示根目录
    * @param currentPage 页码 从1开始
    * @param pageSize 每页记录数 最小1 最大100
    * @return
    */

    public Response<List<Pic>> getPicList(String dirpath, Integer currentPage, Integer pageSize)
    /**
    * 删除目录,非空目录不能删除,不能删除根目录
    *
    * @param dirpath图片全路径,例如:"/a/b/",不能为空
    * @return
    */

    public Response<Void> deleteDir(String dirpath);
    /**
    * 创建目录
    *
    * @param dirpath图片全路径,例如:"/a/b/",不能为空
    * @return
    */

    public Response<Void> createDir(String dirpath);
    /**
    * 获取某个目录的子目录列表,如果目录不存在,返回response的sucess为false
    *
    * @param dirpath 目录路径 例如 "/a/b/",为空表示根目录
    * @return
    */

    public Response<List<String>> getDirList(String dirpath)
    /**
    * 判断文件是否存在
    *
    * @param dirpath 目录 ,为空表示根目录
    * @param filename 文件名称
    * @return
    */

    public Response<Boolean> isFileExist(String dirpath,String filename);
    /**
    * 判断目录是否存在
    *
    * @param path 文件全路径
    * @return
    */

    public Response<Boolean> isDirExist(String dirpath);
    }

返回值类型:

    public class Response<T> {
    private short status = 200; //状态码
    private boolean success = false; //方法调用是否成功、是否按预期执行
    private T result; //返回值,调用成功才有返回值
    private String errorMsg; //调用失败有错误信息
    }
    状态码列表:
    200:请求成功
    400:参数错误
    404:图片不存在
    405:目录不存在
    408:图片大小超限
    406:目录非空不能删除
    406:存在同名目录或文件
    408:请求超时
    500:系统错误

Pic类型

    public class Pic{
    /**
    * 文件名
    */

    public String filename;
    /**
    * 所属目录
    */

    public String dirpath;
    /**
    * 文件大小
    */

    public Long size;
    /**
    * 文件类型,0:jpg,1:gif,2:png,3:bmp
    */

    public Integer type;
    /**
    * 文件内容修改时间
    */

    public Date fileModified;
    /**
    * 删除标识,0代表正常,1代表已经删除,3代表在回收站中
    */

    public Integer deleted;
    /**
    * md5加密
    */

    public String md5;
    /**
    * 图片绝对地址, 使用这个地址, 可直接访问图片.
    * 例如:http://img03.taobaocdn.com/imgextra/i3/436168931/T2Q1UWXFpaXXXXXXXX_!!436168931-2-sitemanager.png
    */

    public String fullUrl;
    /**
    * 获取不同尺寸的图片绝对地址
    * 例如60x60:http://img03.taobaocdn.com/imgextra/i3/436168931/T2Q1UWXFpaXXXXXXXX_!!436168931-2-sitemanager.png_60x60.jpg
    */

    public String getCDNFullUrl(int width, int height);
    }

图片服务演示Demo

结果演示

访问127.0.0.1:8080

 

点击上传图片

 

选择一张图片(在应用逻辑中,重名图片将被覆盖),并指定存放路径(不填默认存放在根路径下,不存在的文件夹将被创建),点击提交

 

显示为图片上传成功

 

点击返回示例列表,并点击显示图片,将展示根路径下所有的文件夹和图片文件

 

查看本地SDK模拟的文件存放路径/tae-dev/temp/picservices,会发与示例展示一致

准备工作

选择直接运行的用户直接下载应用war包运行,忽略以下步骤。
  • 预留大约15分钟无干扰时间
  • 安装配置TAE SDK并将业务类型设置为“百川无线开放”(即app.biztype=35),应用类型设置为前台(即app.apptype =0),开发语言设置为Java(即app.language =Java) 参考:点击查看
  • 将TAE SDK集成到了IDEA或Eclipse(强烈推荐使用IDEA进行TAE的本地开发和调试),参考:点击查看
  • 下载本Demo的工程源文件 点击下载

使用说明

1、新建本工程的运行配置,如图
2、注意工程对图片服务API的pom依赖,service-jae-api的版本要在1.0.7-SNAPSHOT以上。关于依赖包引入的细节,请参考下载依赖包
    <dependency>
    <groupId>com.alibaba.appengine</groupId>
    <artifactId>services-api</artifactId>
    <version>1.4.28-SNAPSHOT</version>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>com.alibaba.appengine</groupId>
    <artifactId>services-jae-api</artifactId>
    <version>1.0.8-SNAPSHOT</version>
</dependency>
3、运行后的结果参见上面的Demo演示。

小结

本文首先向读者介绍了通过控制台使用图片服务的方法,接着向读者列出了图片服务的使用接口,最后,通过示例向读者展示了如何通过本地SDK开发、调试图片服务。相信通过该示例的学习,读者可以更好的掌握图片服务,并有效地融入自己的应用场景中。