|  | @@ -4,11 +4,11 @@ A module provides upload, download, and files access API. Supports file stream r
 | 
	
		
			
			| 4 | 4 |  
 | 
	
		
			
			| 5 | 5 |  **Why do we need this**
 | 
	
		
			
			| 6 | 6 |  
 | 
	
		
			
			| 7 |  | -At this moment, React Native does not support `Blob` object yet, so if you're going to send/receive binary data via `fetch` API, that might not work as you expect. See [[fetch] Does fetch with blob() marshal data across the bridge?](https://github.com/facebook/react-native/issues/854).
 | 
	
		
			
			|  | 7 | +React Native does not support `Blob` object at this moment, which means if you're going to send/receive binary data via `fetch` API, that might not work as you expect. See [[fetch] Does fetch with blob() marshal data across the bridge?](https://github.com/facebook/react-native/issues/854).
 | 
	
		
			
			| 8 | 8 |  
 | 
	
		
			
			| 9 |  | -Hence you may getting into trouble in some use cases. For example, displaying an image on image server but the server requires a specific field(such as "Authorization") in headers or body, so you can't just pass the image uri to `Image` component because that will probably returns a 401 response. With help of this module, you can send a HTTP request with any headers, and decide how to handle the response/reqeust data. The response data can be just simply converted into BASE64 string, or store to a file directly so that you can read it by file stream or use it's path.
 | 
	
		
			
			|  | 9 | +For some uses cases, you might get into trouble. For example, displaying an image that requires a specific field in headers (ex. "Authorization : Bearer ...") or body, so you can't just pass the image uri to `Image` component because that will probably returns a 401 response. Or you're going to upload binary data which generated from JS, the server will get an empry body due to [this issue](https://github.com/facebook/react-native/issues/854). With help of this APIs provides by this module, you can send HTTP request with any headers, and decide how to handle the response/reqeust data without worry about if it is not supported by `fetch` API. The response data can be just simply converted into BASE64 string, or store to a file directly so that you can read it by file access APIs such as readFile, readStream.
 | 
	
		
			
			| 10 | 10 |  
 | 
	
		
			
			| 11 |  | -This module is designed to be a substitution of `blob`, there's a set of file access API including basic CRUD method, and file stream reader/writer. Also it has a special `fetch` implementation that supports binary request/response body.
 | 
	
		
			
			|  | 11 | +This module was designed to be a substitution of `Blob`, there's a set of APIs including basic file system CRUD method, and file stream reader/writer. Also it has a special `fetch` implementation that supports binary request/response body.
 | 
	
		
			
			| 12 | 12 |  
 | 
	
		
			
			| 13 | 13 |  **Pre v0.5.0 Users**
 | 
	
		
			
			| 14 | 14 |  
 | 
	
	
		
			
			|  | @@ -21,11 +21,11 @@ This update is `backward-compatible` generally you don't have to change existing
 | 
	
		
			
			| 21 | 21 |   * [Download file](#user-content-download-example--fetch-files-that-needs-authorization-token)
 | 
	
		
			
			| 22 | 22 |   * [Upload file](#user-content-upload-example--dropbox-files-upload-api)
 | 
	
		
			
			| 23 | 23 |   * [Multipart/form upload](#user-content-multipartform-data-example--post-form-data-with-file-and-data)
 | 
	
		
			
			| 24 |  | - * [Upload/Download progress](#user-content-uploaaddownload-progress)
 | 
	
		
			
			| 25 |  | - * [Android Media Scanner, and Download Manager Support](#user-content-android-media-scanner-and-downloads-app-support)
 | 
	
		
			
			|  | 24 | + * [Upload/Download progress](#user-content-uploaddownload-progress)
 | 
	
		
			
			|  | 25 | + * [Android Media Scanner, and Download Manager Support](#user-content-android-media-scanner-and-download-manager-support)
 | 
	
		
			
			| 26 | 26 |   * [File access](#user-content-file-access)
 | 
	
		
			
			| 27 | 27 |   * [File stream](#user-content-file-stream)
 | 
	
		
			
			| 28 |  | - * [Manage cached files](#user-content-manage-cached-files)
 | 
	
		
			
			|  | 28 | + * [Manage cached files](#user-content-cache-file-management)
 | 
	
		
			
			| 29 | 29 |   * [Self-Signed SSL Server](#user-content-self-signed-ssl-server)
 | 
	
		
			
			| 30 | 30 |  * [API References](https://github.com/wkh237/react-native-fetch-blob/wiki/Fetch-API)
 | 
	
		
			
			| 31 | 31 |  * [Development](#user-content-development)
 | 
	
	
		
			
			|  | @@ -336,6 +336,8 @@ RNFetchBlob
 | 
	
		
			
			| 336 | 336 |  
 | 
	
		
			
			| 337 | 337 |  When download large files on Android it is recommended to use `Download Manager`, it supports lot of native features like progress bar, and notification, also the download task will be handled by OS, and more effective.
 | 
	
		
			
			| 338 | 338 |  
 | 
	
		
			
			|  | 339 | +<img src="img/download-manager.png" width="256">
 | 
	
		
			
			|  | 340 | +
 | 
	
		
			
			| 339 | 341 |  When using DownloadManager, `fileCache` and `path` properties in `config` will not take effect, because Android DownloadManager can only store files to external storage. When download complete, DownloadManager will generate a file path so that you can deal with it.
 | 
	
		
			
			| 340 | 342 |  
 | 
	
		
			
			| 341 | 343 |  ```js
 | 
	
	
		
			
			|  | @@ -391,25 +393,25 @@ RNFetchBlob.config({
 | 
	
		
			
			| 391 | 393 |  
 | 
	
		
			
			| 392 | 394 |  File access APIs were made when developing `v0.5.0`, which helping us write tests, and was not planned to be a part of this module. However I realized that, it's hard to find a great solution to manage cached files, every one who use this moudle may need those APIs for there cases.
 | 
	
		
			
			| 393 | 395 |  
 | 
	
		
			
			| 394 |  | -Here's the list of `fs` APIs
 | 
	
		
			
			| 395 |  | -
 | 
	
		
			
			| 396 |  | -- dirs
 | 
	
		
			
			| 397 |  | -- createFile
 | 
	
		
			
			| 398 |  | -- readFile
 | 
	
		
			
			| 399 |  | -- writeFile
 | 
	
		
			
			| 400 |  | -- appendFile
 | 
	
		
			
			| 401 |  | -- readStream
 | 
	
		
			
			| 402 |  | -- writeStream
 | 
	
		
			
			| 403 |  | -- unlink
 | 
	
		
			
			| 404 |  | -- mkdir
 | 
	
		
			
			| 405 |  | -- ls
 | 
	
		
			
			| 406 |  | -- mv
 | 
	
		
			
			| 407 |  | -- cp
 | 
	
		
			
			| 408 |  | -- exists
 | 
	
		
			
			| 409 |  | -- isDir
 | 
	
		
			
			| 410 |  | -- lstat
 | 
	
		
			
			| 411 |  | -- stat
 | 
	
		
			
			| 412 |  | -- scanFile (Android Only)
 | 
	
		
			
			|  | 396 | +File Access APIs
 | 
	
		
			
			|  | 397 | +
 | 
	
		
			
			|  | 398 | +- [dirs](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#dirs)
 | 
	
		
			
			|  | 399 | +- [createFile](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#createfilepath-data-encodingpromise)
 | 
	
		
			
			|  | 400 | +- [writeFile (0.6.0)](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#writefilepathstring-contentstring--array-encodingstring-appendbooleanpromise)
 | 
	
		
			
			|  | 401 | +- [appendFile (0.6.0) ](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#appendfilepathstring-contentstring--array-encodingstringpromise)
 | 
	
		
			
			|  | 402 | +- [readFile (0.6.0)](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#readfilepath-encodingpromise)
 | 
	
		
			
			|  | 403 | +- [readStream](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#readstreampath-encoding-buffersizepromise)
 | 
	
		
			
			|  | 404 | +- [writeStream](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#writestreampathstring-encodingstring-appendbooleanpromise)
 | 
	
		
			
			|  | 405 | +- [unlink](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#unlinkpathstringpromise)
 | 
	
		
			
			|  | 406 | +- [mkdir](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#mkdirpathstringpromise)
 | 
	
		
			
			|  | 407 | +- [ls](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#lspathstringpromise)
 | 
	
		
			
			|  | 408 | +- [mv](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#mvfromstring-tostringpromise)
 | 
	
		
			
			|  | 409 | +- [cp](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#cpsrcstring-deststringpromise)
 | 
	
		
			
			|  | 410 | +- [exists](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#existspathstringpromise)
 | 
	
		
			
			|  | 411 | +- [isDir](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#isdirpathstringpromise)
 | 
	
		
			
			|  | 412 | +- [stat](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#statpathstringpromise)
 | 
	
		
			
			|  | 413 | +- [lstat](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#lstatpathstringpromise)
 | 
	
		
			
			|  | 414 | +- [scanFile (Android only)](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#scanfilepathstringpromise-androi-only)
 | 
	
		
			
			| 413 | 415 |  
 | 
	
		
			
			| 414 | 416 |  See [File API](https://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API) for more information
 | 
	
		
			
			| 415 | 417 |  
 |