Giter Club home page Giter Club logo

file-downloader's People

Contributors

wlfcolin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

file-downloader's Issues

文件保存失败错误

System.err: org.wlf.filedownloader.file_download.file_saver.FileSaver$FileSaveException: saving data error!
08-24 10:39:28.686 14381-14512/com.fenqile.licai W/System.err: at org.wlf.filedownloader.file_download.file_saver.FileSaver.saveData(FileSaver.java:249)
08-24 10:39:28.687 14381-14512/com.fenqile.licai W/System.err: at org.wlf.filedownloader.file_download.DownloadTaskImpl.onDownloadConnected(DownloadTaskImpl.java:503)
08-24 10:39:28.687 14381-14512/com.fenqile.licai W/System.err: at org.wlf.filedownloader.file_download.http_downloader.HttpDownloader.notifyDownloadConnected(HttpDownloader.java:343)
08-24 10:39:28.687 14381-14512/com.fenqile.licai W/System.err: at org.wlf.filedownloader.file_download.http_downloader.HttpDownloader.download(HttpDownloader.java:297)
08-24 10:39:28.687 14381-14512/com.fenqile.licai W/System.err: at org.wlf.filedownloader.file_download.DownloadTaskImpl.run(DownloadTaskImpl.java:362)
08-24 10:39:28.687 14381-14512/com.fenqile.licai W/System.err: at org.wlf.filedownloader.file_download.RetryableDownloadTaskImpl.run(RetryableDownloadTaskImpl.java:465)

FileDownloader.start希望新增参数

有些时候下载url会附带一些参数信息,希望在FileDownloader.start()加入(Object object)参数,这个参数可以通过DownloadFileInfo获取到,这样的话,在下载监听的地方就可以获取到此参数信息了。

希望新增配置

可以自己设置更新进度回调的时间,目前看默认是2s,希望可以自定义。
看到还有一种更新策略是根据大小,也希望改成可以设置的方式。

Downloader for api >=23

hi
thank you for your downloader
on api 23 i got a SPACE_FULL error, but my phone space is full, it's works on api <23
what should i do ?
thanks in advance,

listview显示进度条错乱的问题

你好,麻烦问下实现你的监听后,listview的进度条会被复用,我可以在我的holder里面获取到进度条的进度么,还是只能在监听里获得

请问如何添加header,

对于受限制的下载资源,例如url需要添加登陆信息,在header中添加信息等等情况有相应的处理方法吗?我使用MultiBuilder.addHeaderWithUrl()添加头,但是不起作用,探测文件一直是失败的

收不到下载状态更新的回调

如果配置了能够同时下载的任务数为2个,当我添加第三个下载任务后,这个时候处于等待中状态,再把它取消掉(调用FileDownloader的delete方法),然后再添加那个被取消的下载任务,此时收不到下载状态更新的回调,DownloadFileInfo里的状态信息Status为DOWNLOAD_STATUS_UNKNOWN

关于Storage space is full or storage can not write的问题

screen shot 2016-10-09 at 11 57 54

文件下载前,执行FileDownloader.init()方法,工作正常,并在/storage/sdcard0/目录下成功建立了用于存储下载文件的文件夹。目标文件大小小于当前可用空间大小,AndroidManifast.xml中也设置了WRITE_EXTERNAL_STORAGE,但是下载文件时却始终遭遇错误(storage space is full or storage can not write!)。

请问还有什么情况可能导致遭遇这个问题?谢谢!

在小米4,Android6.0.1系统无法创建保存文件的路径

`public Builder configFileDownloadDir(String fileDownloadDir) {
if (!TextUtils.isEmpty(fileDownloadDir)) {
File file = new File(fileDownloadDir);
if (!file.exists()) {

                Log.i(TAG, "configFileDownloadDir 要设置的文件下载保存目录:" + fileDownloadDir + " 还不存在,需要创建!");

                boolean isCreateSuccess = file.mkdirs();

                if (isCreateSuccess) {
                    Log.i(TAG, "configFileDownloadDir 要设置的文件下载保存目录:" + fileDownloadDir + " 创建成功!");
                } else {
                    Log.i(TAG, "configFileDownloadDir 要设置的文件下载保存目录:" + fileDownloadDir + " 创建失败!");
                }

            } else {
                Log.i(TAG, "configFileDownloadDir 要设置的文件下载保存目录:" + fileDownloadDir + " 已存在,不需要创建!");
            }
            this.mFileDownloadDir = fileDownloadDir;
        }
        return this;
    }`

isCreateSuccess总是返回失败

java.util.ConcurrentModificationException

创建200+个任务概率性出现以下问题:

java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:788)
at java.util.HashMap$ValueIterator.next(HashMap.java:820)
at java.util.AbstractCollection.toArrayList(AbstractCollection.java:349)
at java.util.AbstractCollection.toArray(AbstractCollection.java:339)
at java.util.ArrayList.(ArrayList.java:97)
at
org.wlf.filedownloader.DownloadCacher.getDownloadFiles(DownloadCacher.java:669)
at
org.wlf.filedownloader.file_download.DownloadTaskManager.checkFileNameInternal(DownloadTaskManager.java:628)
at
org.wlf.filedownloader.file_download.DownloadTaskManager.checkFileName(DownloadTaskManager.java:622)
at
org.wlf.filedownloader.file_download.DownloadTaskManager.createAndStart(DownloadTaskManager.java:610)
at
org.wlf.filedownloader.FileDownloadManager.createAndStart(FileDownloadManager.java:384)
at
org.wlf.filedownloader.FileDownloader.createAndStart(FileDownloader.java:323)
at
DownloadUtils$DownloadThread.run(DownloadUtils.java:242)

不能自定义文件的下载路径和文件名吗?

FileDownloader.detect(apkUrl, new OnDetectBigUrlFileListener() {
@OverRide
public void onDetectNewDownloadFile(String url, String fileName, String saveDir, long fileSize) {
// 如果有必要,可以改变文件名称fileName和下载保存的目录saveDir
FileDownloader.createAndStart(url, savePath, saveFileName);
}
@OverRide
public void onDetectUrlFileExist(String url) {
// 继续下载,自动会断点续传(如果服务器无法支持断点续传将从头开始下载)
FileDownloader.start(url);
}
@OverRide
public void onDetectUrlFileFailed(String url, DetectBigUrlFileFailReason failReason) {
// 探测一个网络文件失败了,具体查看failReason
}
});

这个好像也不起作用.....如何设置呢?

eTag is not equal,please delete the old one then re-download

你好,博主,下载同样路径的不同文件时会报这个异常,不知是否程序内部做了限制?下载链接是一样的,但是文件大小不同,因为我只是在后台替换了文件,就导致了无法下载。麻烦解答下我的问题,谢谢

download issue

E/wlf: getEncodedUrl,编码后URL,encodedUrl:http://m1.daumcdn.net/svc/image/U03/cartoon/576A133F0162930001
D/wlf: getEncodedUrl,--------------------
D/wlf: getEncodedUrl,准备编码URL,url:http://m1.daumcdn.net/svc/image/U03/cartoon/576A133F0162930001
D/wlf: getEncodedUrl,开始编码URL,unEncodeUrl:http://m1.daumcdn.net/svc/image/U03/cartoon/576A133F0162930001
D/wlf: getEncodedUrl,开始编码URL,getProtocol:http
D/wlf: getEncodedUrl,开始编码URL,getHost:m1.daumcdn.net
D/wlf: getEncodedUrl,开始编码URL,getUserInfo:null
D/wlf: getEncodedUrl,开始编码URL,getPort:-1
D/wlf: getEncodedUrl,开始编码URL,getFile:/svc/image/U03/cartoon/576A133F0162930001
D/wlf: getEncodedUrl,开始编码URL,getPath:/svc/image/U03/cartoon/576A133F0162930001
D/wlf: getEncodedUrl,开始编码URL,getQuery:null
D/wlf: getEncodedUrl,开始编码URL,getRef:null
D/wlf: isEncoded,check content:m1.daumcdn.net
D/wlf: isEncoded,check content:svc
D/wlf: isEncoded,check content:image
D/wlf: isEncoded,check content:U03
D/wlf: isEncoded,check content:cartoon
D/wlf: isEncoded,check content:576A133F0162930001
E/wlf: getEncodedUrl,编码后URL,encodedUrl:http://m1.daumcdn.net/svc/image/U03/cartoon/576A133F0162930001
I/DownloadStatusObserver: file-downloader-listener 通知【文件下载状态为完成】,文件的url:http://m1.daumcdn.net/svc/image/U03/cartoon/576A133F0162930001
I/RetryableDownloadTaskImpl: file-downloader-status 记录【完成状态】成功,url:http://m1.daumcdn.net/svc/image/U03/cartoon/576A133F0162930001
E/DownloadTaskManager: mRunningDownloadTaskMap,--移除--:http://m1.daumcdn.net/svc/image/U03/cartoon/576A133F0162930001,task:1065054617,线程数:69
D/RetryableDownloadTaskImpl: RetryableDownloadTaskImpl.run 文件下载任务【已结束】,是否有异常:false,url:http://m1.daumcdn.net/svc/image/U03/cartoon/576A133F0162930001

下载速度过慢

同一个下载源,其他方式下载很快(3~4M /s )。 楼主这个方式下载速度只有500kb左右。请问是什么原因。

unexpected end of stream处理方法

下载日志

这个工具默认多线程下载,没有重试机制,返回错误不明确,应该直接指出request-header:range(xxx-yyy)请求失败。
查到服务端请求range过滤出来,发现会丢数据。建议看一下源码改成单线程可以解决

问题测试提供来自七牛云

DownloadTaskManager.getRunningDownloadTask NPE

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Object.hashCode()' on a null object reference
       at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:772)
       at org.wlf.filedownloader.file_download.DownloadTaskManager.getRunningDownloadTask(DownloadTaskManager.java:183)
       at org.wlf.filedownloader.file_download.DownloadTaskManager.getRunningDownloadTask(DownloadTaskManager.java:166)
       at org.wlf.filedownloader.file_download.DownloadTaskManager.isDownloading(DownloadTaskManager.java:836)
       at org.wlf.filedownloader.file_download.DownloadTaskManager.notifyDownloadStatusFailed(DownloadTaskManager.java:434)
       at org.wlf.filedownloader.file_download.DownloadTaskManager.access$500(DownloadTaskManager.java:45)
       at org.wlf.filedownloader.file_download.DownloadTaskManager$5.onDetectUrlFileFailed(DownloadTaskManager.java:736)
       at org.wlf.filedownloader.listener.OnDetectBigUrlFileListener$MainThreadHelper$3.run(OnDetectBigUrlFileListener.java:114)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:148)
       at android.app.ActivityThread.main(ActivityThread.java:5551)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)

problem

hi. i use your Library in my App. when i want to redownload a file , Unfortunately only downloaded it and not store that file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.