Interaction helper for bitrix24 disk
Key features are recursive directory creation from string and promise based requests
$ yarn add bitrix24-disk
or
$ npm i bitrix24-disk
All methods return js Promise. Library expects window.BX24 rest library already defined
Method defines storage which will be used for all other methods. Must be called before any other method.
Library uses default app storage: https://dev.1c-bitrix.ru/rest_help/disk/storage/disk_storage_getforapp.php
Arguments:
-
diskFolder - null or bitrix24 folder object. If null given than method looks into storage root. Otherwise method looks subfolder name at given folder
-
subFolderName - name of folder to find
Arguments:
-
diskFolder - null or bitrix24 folder object. If null given than method creates subfolder into storage root. Otherwise method creates subfolder at given folder
-
subFolderName - name of folder to create
Method takes any string. Recursively creates folder structure by given string
If any part of given path already exists, than method create only rest path
Method returns "disk folder object" for deepest directory
Basic example:
let pathCreated = Bitrix24Disk.findOrCreatePath('/any/folder/structure')
pathCreated.then(diskFolder => {
console.log(diskFolder)
})
Arguments:
-
diskFolder - null or bitrix24 folder object. If null given than method upload file into storage root. Otherwise method uploads file at given folder
-
fileName - string, filename on bitrix24 storage
-
fileReader - fileReader object more info here https://developer.mozilla.org/ru/docs/Web/API/FileReader
Method returns bitrix24 disk file object
Arguments:
-
diskPath - Method takes any string. Recursively creates folder structure by given string. Last part after "/" must be file name
-
fileReader - fileReader object more info here https://developer.mozilla.org/ru/docs/Web/API/FileReader
Method returns bitrix24 disk file object
import Bitrix24Disk from "bitrix24-disk"
let storageLoaded = Bitrix24Disk.initStorage()
storageLoaded.then(storage => {
console.log(storage)
let pathCreated = Bitrix24Disk.findOrCreatePath('/any/folder/structure')
pathCreated.then(diskFolder => {
let fileInput = document.getElementById('file-input-id')
let filesList = fileInput.files
if (filesList.length > 0) {
for (let i = 0; i < filesList.length; i++) {
let fileReader = new FileReader();
fileReader.readAsDataURL(filesList[i]);
let fileUploaded = Bitrix24Disk.uploadToFolder(
diskFolder,
filesList[i].name,
fileReader
)
fileUploaded.then(file => {
console.log(file)
})
fileUploaded.catch(error => {
console.log(error)
})
}
}
})
})
storageLoaded.catch((error) => {
console.log(error)
})