FTP单文件上传
任务控制
获取任务状态 如果你希望获取任务状态,那么你需要使用 事件注解获取任务状态信息
开始\恢复上传
Aria.upload(this) .loadFtp("/mnt/sdcard/gggg.apk") //上传文件路径 .setUploadUrl(URL) //上传的ftp服务器地址 .login("lao", "123456") .start();
暂停
Aria.upload(this).loadFtp(FILE_PATH).stop();
删除任务
Aria.upload(this).loadFtp(FILE_PATH).cancel();
拦截器 FTP文件上传拦截器,如果远端已有同名文件,可使用该拦截器控制覆盖文件或修改该文件上传到服务器端端的文件名
Aria.upload(this) .loadFtp(mFilePath) .setUploadUrl(mUrl) // 如果ftp服务器端有同名文件,可通过拦截器处理是覆盖服务器端文件,还是修改文件名 .setUploadInterceptor( new IFtpUploadInterceptor() { @Override public FtpInterceptHandler onIntercept(UploadEntity entity, List<String> fileList) { FtpInterceptHandler.Builder builder = new FtpInterceptHandler.Builder(); //builder.coverServerFile(); // 覆盖远端同名文件 builder.resetFileName("test.zip"); //修改上传到远端服务器的文件名 return builder.build(); } }) .start();
- 设置扩展字段 有的时候,你可能希望在下载的时候存放一些自己的数据,这时你可以调用该接口将数据保存下来(如果你数据比较多,或者数据比较复杂,你可以先把数据转换为JSON,然后再将其存到Aria的下载实体中)
Aria.download(this).loadFtp(URL).setExtendField("扩展字段").start();
需要注意的是:如果你没有调用
start()
,stop()
等操作方法,那么你需要调用save()
才能将头部数据保存进数据库。 如下所示:Aria.download(this).loadFtp(URL).setExtendField("扩展字段").save();
注意事项
- FTP上传需要FTP 服务器给用户打开
write
的权限 - 如果需要支持断点上传,需要FTP服务器给用户打开
append
权限 - FTP下载必须加上端口号
- aria支持读取url中的账号和密码,但是如果url中已经带有账号和密码,则不能使用
login()
进行登录,否则url中的账号密码将被覆盖