Диск api bitrix24 коробка

документация Битрикса https://dev.1c-bitrix.ru/api_d7/bitrix/disk/index.php
CModule::IncludeModule('disk'); //диск
\Bitrix\Main\Loader::includeModule('disk');
Посмотреть данные о диске тут:  
Настройки - Производительность - Таблицы - b_disk_storage
работа с файлом диска
$file = Bitrix\Disk\File::getById($fileId); //получить файл

$name = $file->getName(); // получим имя файла
$info = $file->getFile(); // получим информацию о файле
$link = \Bitrix\Disk\Driver::getInstance()->getUrlManager()->getUrlForShowFile($file); // получим ссылку на файл в Диске

$file->delete($userId); //удалить из-под пользователя 
удалить диск
$userId = 1; //id пользователя, от имени которого будет совершаться удаление
$storageId = 100; //id хранилища Диска, которые вы желаете удалить. См. таблицу b_disk_storage
$errors = null;
$storage = \Bitrix\Disk\Storage::loadById($storageId);
if($storage){
    if(!$storage->delete($userId)){
        $errors = $storage->getErrors();
    }
}
переименовать диск
$storageId = 100; //id хранилища Диска, которые вы желаете переименовать. См. таблицу b_disk_storage
$newName = 'NewName'; //новое имя
$errors = null;

$storage = \Bitrix\Disk\Storage::loadById($storageId);
if($storage){
    if(!$storage->rename($newName)){
        $errors = $storage->getErrors();
    }
}
ограничить размер
Важно!
Должна быть активна настройка «Разрешить квотирование хранилищ»
Настройки > Настройки продукта > Настройки модулей > Диск
$userId = 1; //кому

$storage = \Bitrix\Disk\Driver::getInstance()->getStorageByUserId($userId);
//установить лимит в 1024*1024 байт
$storage->setSizeLimit(1024*1024);

//отключить лимит 
$storage->setSizeLimit(null);
получить путь
$fileId = 100;

$file = \Bitrix\Disk\File::getById($fileId);
$urlManager = \Bitrix\Disk\Driver::getInstance()->getUrlManager();

var_dump($urlManager->getPathFileDetail($file));
var_dump($urlManager->getPathInListing($file));
изменение прав на папку диска
CModule::IncludeModule('disk');

$storage = \Bitrix\Disk\Driver::getInstance()->getStorageByUserId(1);
$folder = \Bitrix\Disk\Folder::load(array(
   'PARENT_ID' => $storage->getRootObjectId(),
   'NAME' => 'Загруженные файлы',
   'STORAGE_ID' => $storage->getId()
));
if($folder){
   $newRights = array(
      Array(
         "ACCESS_CODE" => "U1", // Пользователь ID=1
         "TASK_ID" => "81"
      ),
     Array(
         "ACCESS_CODE" => "G1", // Группа пользователей ID=1
         "TASK_ID" => "81"
     ),
     Array(
        "ACCESS_CODE" => "AU", // Все авторизованные пользователи
        "TASK_ID" => 78
     ),
     Array(
        "ACCESS_CODE" => "G2", // Все пользователи
        "TASK_ID" => 78
     )
   );

   $rightsManager = \Bitrix\Disk\Driver::getInstance()->getRightsManager();
   $rightsManager->append($folder->getRealObject(), $newRights);
}
ОБРАБОТЧИКИ
обработчик, который при изменении пользователя диск ограничивает
AddEventHandler("main", "OnAfterUserUpdate", "SetMaxFileSizeDisk"); 
function SetMaxFileSizeDisk($arFields){ 
   $userId = $arFields["ID"]; 
   if(CModule::IncludeModule('disk')){ 
      $storage = \Bitrix\Disk\Driver::getInstance()->getStorageByUserId($userId); 
      $storage->setSizeLimit(1073741824); //1гб = 1073741824байт 
   } 
}
Задача: ограничить размер файла передаваемого в чате корпоративного портала
Решение: обработчик, который удаляет файлы в чате более 10мб
в init.php
AddEventHandler("im", "OnAfterFileUpload", "CheckFileSize");
function CheckFileSize($arFields){   
   if(!empty($arFields["FILE"]["size"]) && ($arFields["FILE"]["size"]>10485760) && CModule::IncludeModule("disk")){ //10мб
      $file = Bitrix\Disk\File::getById($arFields["FILE_ID"]);      
      if($file->delete(1)&&CModule::IncludeModule('im')){         
         CIMMessenger::Update($arFields["MESSAGE_ID"], 'Не удалось загрузить файл. Превышен размер в 10мб.');
      }

   }
}