Vue Azure Multipart Upload
VueJS service for uploading to azure blob storage.based on https://github.com/kinstephen/angular-azure-blob-upload
Provides for the ability to upload an HTML5 File to Azure's Blob Storage. The file is uploaded in chunks to avoid memory issues as a BlockBlob. The upload uses a Shared Access Signature (SAS) to secure the file upload.
Required dependencies
- VueJS
- one of HTTP clients:
- [Axios](https://github.com/axios/axios)
- [Vue Axios](https://github.com/imcvampire/vue-axios)
- [Vue Resource](https://github.com/pagekit/vue-resource)
Installation -----------------------
npm i --save vue-azure-blob-upload
After instaling by
npm
(above) to your VueJS projectimport
VueAzureUploader
to your main Vue file like so
import VueAzureUploader from 'vue-azure-blob-upload'
Vue.use(VueAzureUploader);
````
How to use
-------------
Proper config will expose the following method in components
`this.$azureUpload.upload(config)`
The config object has the following properties
```javascript
{
baseUrl: // baseUrl for blob file uri (i.e. http://<accountName>.blob.core.windows.net/<container>/<blobname>),
sasToken: // Shared access signature querystring key/value prefixed with ?,
file: // File object using the HTML5 File API,
progress: // progress callback function,
complete: // complete callback function,
error: // error callback function,
blockSize: // Use this to override the DefaultBlockSize,
}
How to use with custom http instance
VueAzureUploader
is using Vue.$http
object by default. You can provide custom instance of Axios
or other promise-based http
client.import Axios from 'axios'
const httpConfig = {
headers: {
authorizaion: 'Bearer token123'
}
}
const axios = Axios.create(httpConfig)
this.$azureUpload.upload(config, axios)
CORS
Cross Origin Resource Sharing (CORS) must be enabled on the azure blob storage account. The following articles can assist with this...Windows Azure Storage Introducing CORS
Windows Azure Storage and CORS