Home Reference Source

src/providers/storage/azure.js

import XHR from './xhr';
const azure = (formio) => ({
  uploadFile(file, fileName, dir, progressCallback, url, options, fileKey, groupPermissions, groupId, abortCallback) {
    return XHR.upload(formio, 'azure', (xhr, response) => {
      xhr.openAndSetHeaders('PUT', response.url);
      xhr.setRequestHeader('Content-Type', file.type);
      xhr.setRequestHeader('x-ms-blob-type', 'BlockBlob');
      return file;
    }, file, fileName, dir, progressCallback, groupPermissions, groupId, abortCallback).then((response) => {
      return {
        storage: 'azure',
        name: XHR.path([dir, fileName]),
        size: file.size,
        type: file.type,
        groupPermissions,
        groupId,
        key: response.pathFile
      };
    });
  },
  downloadFile(file) {
    return formio.makeRequest('file', `${formio.formUrl}/storage/azure?name=${XHR.trim(file.name)}`, 'GET');
  },

  deleteFile: function deleteFile(fileInfo) {
    var url = `${formio.formUrl}/storage/azure?name=${XHR.trim(fileInfo.name)}&key=${XHR.trim(fileInfo.key)}`;
    return formio.makeRequest('', url, 'delete');
  }
});

azure.title = 'Azure File Services';
export default azure;