Download the PHP package avtomon/drive-api without Composer

On this page you can find all versions of the php package avtomon/drive-api. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package drive-api

driveAPI

Описание:

DriveAPI – продукт для реализации возможности использования Goole Drive в качестве основного файлого хранилища для веб-ресурса. В своей работе DriveAPI использует PHP-библиотеку, раеализующую Google API для получения токена для исполнения запросов к хранилищу. Способы встраивания библиотеки в ваш проект и требования к ней есть официальной документации от Google. Но я на всякий случай все же выложил соответствующие php-файлы на случай если у кого-то возникнут затруднения.

И так, для корректной работы модуля вам понадобится сгенерированный в консоли разработчика файл стандарта PKCS#12 (можно сгенерировать при создании сервис-аккаунта), имя файла будет похоже на your-account-c5e5588daee0.p12. Файл этот предназначен для организации аутентифицированной связи между вашим сервером и Google Drive. Собственно, вся механика такова: ваш сервер по запросу от клиента при помощи PHP Google API с ключем P12 на борту делает запрос к Google на манер: «Разреши мне записать данные в твое хранилище, вот мое удостоверение (ключ P12)» и если Google признал вас как собственника вашего виртулаьного диска в хранилище Google Drive, то он отвечает: “Ок, бро, это можно. Вот твой пароль. Присылай ео со всеми своими файлами и их будет без проблем пропускать». На самом деле все немного сложнее, но если опустить техподробности, то все будет выглядеть примерно так. Далее сервер отдает полученный токен клиенту – JS-части библиотеки и эта часть уже занимается непосредственно отправкой файла.

Одна из основных фишек модуля состоит в том что при подключении его к сайту можно загружать файлы в хранилище Google без авторизации в Google-аккаунте. Сайт берет на себя ответственность за аутентификацию (если это требуется) пользователей, загружающих файлы и выступает посредеником между пользователем Google Drive'ом, позволяя загружать файлы от своего имени, файл при этом на сервер хостящий сайт никаким образом не попадает – загрузка производится напрямую на сервера Google.

Одной из проблем связанных с повседневной загрузкой файлов в Google Drive через веб является проблема загрузки больших файлов в хранилище. Дело в том, что Google принимает в виде файлов (или частей файлов) только данные, закодированные в Base64. Стандартные примеры кода, для загрузки файлов в Google Drive через JavaScript включают себя обязательную конвертацию загружаетмого файла, для этого нужно сначала считать с диска в память браузера весь файл, а потом его еще и переконвертировать в Base64. Штука в том, что на больших файлах для (IE это 40+ Мб) браузеры валятся от переполения собственной памяти. Однако, как оказалось никто не мешает считывать файл в память кусками, затем эти куски конвертировать и отправлять последоватлеьно на сервер. Таким образом, в один момент времени в памяти браузера перелопачивается только один кусок файла. В сочетании с простым механизмом докачки из REST API Google Drive, получает достаточно удобный механизм закачки больших файлов и как бонус индикацию процесса загрузки, если нужно.

Алгоритм следующий: читаем из нужного файла CHUNK_SIZE байт данных, конвертируем их и отправляем Google в синхронном режиме. В этом есть небольшой недостаток: мы не можем отпавлять куски файла асинхронно в несколько потоков, Google жалуется, что куски приходят в неправильном порядке. Далее повторяем операции до вплоть до конца загружаемого файла.

Файлы:

Серверная часть:

config.php – файл конфигурации серверной части модуля.

Директивы:

AUTOLOAD_PATH – путь к файлу autoload.php в библиотеке Google API, который отвечает за подгрузку ее необходимых компонентов;

SERVICE_ACCOUNT_NAME – имя аккаунта пользователя Google API (можно посмотреть в консоли разработчика).

KEY_FILE_LOCATION – путь к файлу ключа PKCS#12

getToken.php – файл с кодом, запрашивающим токен у Google. В простейшем случае, клиенту достаточно просто запросить это файл на сервере и в теле ответа он получит токен в текстовом виде.


Клиентская часть:

config.js – конфигурация клиентской части модуля, представляет собой объект.

Директивы:

FOLDERS – разделы для файлов в хранилище. Предполаегается что в хранилище могут быть созданы директории для хранения разничных видов файлов. Впоследствие, можно выбрать конкретную директорию для загрузки конкретного файла, идентифицировав ее по идентификатору заданному в этом свойстве. Так же файлы можно писать и в корень диска, если не задавать родительскую папку.

DRIVE_FILE_INFO – строка, задающая то какие свойства файла (файлов), нам нужно получить как ответ на тот или иной запрос к серверу Google.

BOUNDARY – используется при multipart-загрузке файлов. Представляет собой строку-разделитель для партифионирования частей тела запроса, при отправкев нем дополнительных параметров и заголовков.

CHUNK_SIZE – уже обозначенный выше параметр, указывает количестве байт файла, которые нужно считывать и отправлять на сервер итеративно, при resumable-загрузке файлов. Если райзмер файла в байтах меньше этого параметра, то используется mutlipart-загрузка.

SERVER_URL – путь к php-файлу, возвращающему Google-токен.


drive_api.js
Методы:

DriveAPI – конструктор класса.

Параметры:

label – тот самый идентификатор директории, в которую предполагается писать. Один объект DriveAPI по умолчанию пишет в директорию, указанную при создании объекта.

folders = собственно, тот самый список директорий для записи, представляет собой ассоциативный массив, а в терминах JS объект, где ключами выступают идентификаторы разделов внутри модуля, а значениями – идентификаторы оных в Google Drive вида 0B-e8MNz22zZvfk9wS0o1c2JMZHIyV2xDeHFwLWQ2anJHQTB5YzNlVDg3YjJKX1ZHTVlEMVk. Если задан, то перепишет элементы из конфига, которые будут иметь такие же ключи, все новое допишет в конец.

cfg – объект конфигурации, перепишет элементы считанного из config.js при совпадении ключей.

checkConfig – проверяет наличие и верный формат всех необходимых для корректной работы модуля директив конфигурации.

Параметры: нет


initFolders – устанавливает массив директорий для записи.

Параметры:

folders – массив идентификаторов папок.


setActiveFolder – устанавливает активную директорию, в которую будут писаться файлы по умолчанию. Строго говоря для активная директория актуальна и для метода getFiles, если при его вызове не задавать второй параметр, но такое использование getFiles лично мне не видится правильным.

Параметры:

label – идетификатор директории.


addFolder - добавляет дополнительную директория для записи и чтения

Параметры:

label - идентификатор директории в объекте

folder_id - идетификатор директории в хранилище


deleteFolder - удаляет элемент списка доступных директорий.

Параметры:

label - идентификатор удаляемой директории


getFile - получить информацию о загруженном файле

Параметры:

callback - функция, выполняющаяся при успешном получении информации от хранилища; file_id - идетификатор файла в хранилище.


getFiles - Получить информацию обо всех файлах из директории.

Параметры:

callback - функция, выполняющаяся при успешном получении информации о файлах; folder_id - идентификатор директории.


uploadFile - загрузка файла в хранилище multipart-способом.

Параметры:

file - файл из input[type=file]; callback - функция-обработчик успешной загрузки; folder_id - идентификатор родительской директории для файла.


IEBinary – формирует байтовую последовательность из файла или части файла (актуально для IE)

Параметры:

buffer - содержимое файла


getChunkRange - формирует заголовок для задания интервала байт, части файла, которая будет отправляться на сервер.

Параметры:

total_size - общий размер файла в байтах; last_size - начальное значение для интервала.


uploadResumable - загрузка файла на сервер с использование докачки.

Параметры:

file - файл из input[type=file]; callback - функция-обработчик успешной загрузки файла; folder_id - идентификатор родительской директории для файла.


readChunk - читает часть файла.

Параметры:

reader - объект FileReader(); file – файл;* *shank - размер считываемого куска; last_size - с какого места читать.


updateFile - меняет уже загруженный в хранилище файл на новый, загруженный multipart-способом.

Параметры:

file - файл из input[type=file]; file_id - идентификатор меняемого файла; callback - функция-обработчик успешного изменения файла.


updateResumable - меняет уже загруженный в хранилище файл на новый, загруженный resumable-способом.

Параметры:

file - файл из input[type=file]; file_id - идентификатор меняемого файла; callback - функция-обработчик успешного изменения файла.


createFolder - создает директорию в хранилище и возвращает ее идентификатор.

Параметры:

callback - обработчик успешного создания директории; parent_id - родительская директория для создаваемой.


delete - удаляет файл или директорию из хранилища

Параметры:

id - идентификатор обекта для удаления; callback - обработчик успешного удаления.


getInternetExplorerVersion - возвращает версию браузера, если это IE

Параметры: нет.


setToken - запрашивает у сервера токен для доступа к хранилищу и сохраняет его в объекте.

Параметры: нет


deleteToken - Удаляет токен для доступа к хранилищу

Параметры: нет.


All versions of drive-api with dependencies

PHP Build Version
Package Version
Requires google/google-api-php-client Version *
bower-asset/jquery Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package avtomon/drive-api contains the following files

Loading the files please wait ....