Browse Source

Merge remote-tracking branch 'wkh237/master' into feat_45

* wkh237/master:
  Update README.md
  Update README.md
  Update README.md
  Updates readStream example to use `fs` package
  Update README.md
Erik Smartt 8 years ago
parent
commit
2ad9ab2c74
1 changed files with 8 additions and 8 deletions
  1. 8
    8
      README.md

+ 8
- 8
README.md View File

1
-# react-native-fetch-blob [![npm](https://img.shields.io/npm/v/react-native-fetch-blob.svg?style=flat-square)](https://www.npmjs.com/package/react-native-fetch-blob) ![](https://img.shields.io/badge/PR-Welcome-brightgreen.svg?style=flat-square) [![npm](https://img.shields.io/npm/l/express.svg?maxAge=2592000&style=flat-square)]() [![npm](https://img.shields.io/badge/inProgress-0.7.0-yellow.svg?style=flat-square)]()
1
+# react-native-fetch-blob [![npm](https://img.shields.io/npm/v/react-native-fetch-blob.svg?style=flat-square)](https://www.npmjs.com/package/react-native-fetch-blob) ![](https://img.shields.io/badge/PR-Welcome-brightgreen.svg?style=flat-square) [![npm](https://img.shields.io/npm/l/express.svg?maxAge=2592000&style=flat-square)]() [![npm](https://img.shields.io/badge/inProgress-0.7.0-yellow.svg?style=flat-square)](https://github.com/wkh237/react-native-fetch-blob/milestones)
2
 
2
 
3
 A module provides upload, download, and files access API. Supports file stream read/write for process large files.
3
 A module provides upload, download, and files access API. Supports file stream read/write for process large files.
4
 
4
 
5
 **Why do we need this**
5
 **Why do we need this**
6
 
6
 
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).
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 [facebook/react-native#854](https://github.com/facebook/react-native/issues/854).
8
 
8
 
9
 For some use 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 APIs provided 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 stored to a file directly so that you can read it by using file access APIs such as readFile, readStream.
9
 For some use 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 APIs provided 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 stored to a file directly so that you can read it by using file access APIs such as readFile, readStream.
10
 
10
 
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.
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
-**Pre v0.5.0 Users**
13
+**Backward Compatible**
14
 
14
 
15
-All updates are `backward-compatible` generally you don't have to change existing code unless you're going to use new APIs. In latest version (v0.5.0), new APIs can either `upload` or `download` files simply using a file path. It's much more memory efficent in some use case. We've also introduced `fs` APIs for access files, and `file stream` API that helps you read/write files (especially for **large ones**), see [Examples](#user-content-usage) bellow. This module implements native methods, supports both Android (uses awesome native library  [AsyncHttpClient](https://github.com/AsyncHttpClient/async-http-client])) and IOS.
15
+All updates are `backward-compatible` generally you don't have to change existing code unless you're going to use new APIs. But we recommend pre `0.5.0` users consider upgrade the package to latest version, since we have introduced new APIs can either `upload` or `download` files simply using a file path. It's much more memory efficent in some use case. We've also introduced `fs` APIs for access files, and `file stream` API that helps you read/write files (especially for **large ones**), see [Examples](#user-content-usage) bellow. This module implements native methods, supports both Android (uses awesome native library  [AsyncHttpClient](https://github.com/AsyncHttpClient/async-http-client])) and IOS.
16
 
16
 
17
 ## TOC
17
 ## TOC
18
 
18
 
19
 * [Installation](#user-content-installation)
19
 * [Installation](#user-content-installation)
20
-* [Guide](#user-content-guide)
20
+* [Recipes](#user-content-guide)
21
  * [Download file](#user-content-download-example--fetch-files-that-needs-authorization-token)
21
  * [Download file](#user-content-download-example--fetch-files-that-needs-authorization-token)
22
  * [Upload file](#user-content-upload-example--dropbox-files-upload-api)
22
  * [Upload file](#user-content-upload-example--dropbox-files-upload-api)
23
  * [Multipart/form upload](#user-content-multipartform-data-example--post-form-data-with-file-and-data)
23
  * [Multipart/form upload](#user-content-multipartform-data-example--post-form-data-with-file-and-data)
79
 
79
 
80
 Beginning in Android 6.0 (API level 23), users grant permissions to apps while the app is running, not when they install the app. So adding permissions in `AndroidManifest.xml` won't work in Android 6.0 devices. To grant permissions in runtime, you might use modules like [react-native-android-permissions](https://github.com/lucasferreira/react-native-android-permissions).
80
 Beginning in Android 6.0 (API level 23), users grant permissions to apps while the app is running, not when they install the app. So adding permissions in `AndroidManifest.xml` won't work in Android 6.0 devices. To grant permissions in runtime, you might use modules like [react-native-android-permissions](https://github.com/lucasferreira/react-native-android-permissions).
81
 
81
 
82
-## Guide
82
+## Recipes
83
 
83
 
84
 ```js
84
 ```js
85
 import RNFetchBlob from 'react-native-fetch-blob'
85
 import RNFetchBlob from 'react-native-fetch-blob'
423
 
423
 
424
 ```js
424
 ```js
425
 let data = ''
425
 let data = ''
426
-RNFetchBlob.readStream(
426
+RNFetchBlob.fs.readStream(
427
     // encoding, should be one of `base64`, `utf8`, `ascii`
427
     // encoding, should be one of `base64`, `utf8`, `ascii`
428
     'base64',
428
     'base64',
429
     // file path
429
     // file path
450
 When use `writeStream`, the stream is also opened immediately, but you have to `write`, and `close` by yourself.
450
 When use `writeStream`, the stream is also opened immediately, but you have to `write`, and `close` by yourself.
451
 
451
 
452
 ```js
452
 ```js
453
-RNFetchBlob.writeStream(
453
+RNFetchBlob.fs.writeStream(
454
     PATH_TO_FILE,
454
     PATH_TO_FILE,
455
     // encoding, should be one of `base64`, `utf8`, `ascii`
455
     // encoding, should be one of `base64`, `utf8`, `ascii`
456
     'utf8',
456
     'utf8',