doerffler/flysystem-onedrive

A flysystem driver for OneDrive that uses the Microsoft Graph API

50

stars

80

commits

PHP

primary language

Aug 5, 2026

updated

api
flysystem
flysystem-adapter
graphapi
laravel
onedrive
php

README

![Banner]

Flysystem adapter for Microsoft OneDrive

This package contains a Flysystem OneDrive adapter, which makes use of the Microsoft Graph API. The adapter is ready for the latest Laravel 12.x version.

You can use this package to access files stored in onedrive or sharepoint folders from your PHP or Laravel web applications.

CI Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

1. Installation

Simply install the package using composer:

composer require justus/flysystem-onedrive

2. Usage

Laravel Usage

  1. Add the following variables to your .env file

example for 'personal' OneDrive

ONEDRIVE_ROOT=me
ONEDRIVE_ACCESS_TOKEN=fd6s7a98...
ONEDRIVE_DIR_TYPE=drives

example for 'group shared' OneDrive

ONEDRIVE_ROOT="{group_id}/drive"
ONEDRIVE_ACCESS_TOKEN=fd6s7a98...
ONEDRIVE_DIR_TYPE=groups
  1. In the file config/filesystems.php, please add the following code snippet to the disks section
'onedrive' => [
    'driver' => 'onedrive',
    'root' => env('ONEDRIVE_ROOT'),
    'access_token' => env('ONEDRIVE_ACCESS_TOKEN'), //optional if demanded
    'directory_type' => env('ONEDRIVE_DIR_TYPE')
],
  1. Add the OneDriveAdapterServiceProvider in config/app.php
'providers' => [
    // ...
    Justus\FlysystemOneDrive\Providers\OneDriveAdapterServiceProvider::class,
    // ...
],

There are two established approaches of using the package

  • On demand: Recommended if you use a dynamic graph access token. (usage e. g. session('graph_access_token'))
$disk = Storage::build([
    'driver' => config('filesystems.disks.onedrive.driver'),
    'root' => config('filesystems.disks.onedrive.root'),
    'directory_type' => config('filesystems.disks.onedrive.directory_type'),
    'access_token' => session('graph_access_token')
]);

$disk->makeDirectory('test');
  • Default with Storage Facade: Recommended if you use a static graph access token.
Storage::disk('onedrive')->makeDirectory('test');

PHP Usage

Usage in php without Laravel framework

$options = [

];

$graph = new Graph();
$graph->setAccessToken('fd6s7a98...');

$adapter = new OneDriveAdapter($graph, 'root/path', $options);

$filesystem = new Filesystem($adapter);

$filesystem->createDirectory('test');

3. Changelog

Please see CHANGELOG for more information on recent changes.

4. Testing

composer test

5. Security

If you discover any security related issues, please write an email to jdonner@doerffler.com instead of using the issue tracker.

6. License

The MIT License (MIT). Please see License File for more information.

Contributors

Jusdon

51 commits

timo2o1o

8 commits

Chris8934

7 commits

doerffler/flysystem-onedrive

A flysystem driver for OneDrive that uses the Microsoft Graph API

50

stars

80

commits

PHP

primary language

Aug 5, 2026

updated

api
flysystem
flysystem-adapter
graphapi
laravel
onedrive
php

README

![Banner]

Flysystem adapter for Microsoft OneDrive

This package contains a Flysystem OneDrive adapter, which makes use of the Microsoft Graph API. The adapter is ready for the latest Laravel 12.x version.

You can use this package to access files stored in onedrive or sharepoint folders from your PHP or Laravel web applications.

CI Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

1. Installation

Simply install the package using composer:

composer require justus/flysystem-onedrive

2. Usage

Laravel Usage

  1. Add the following variables to your .env file

example for 'personal' OneDrive

ONEDRIVE_ROOT=me
ONEDRIVE_ACCESS_TOKEN=fd6s7a98...
ONEDRIVE_DIR_TYPE=drives

example for 'group shared' OneDrive

ONEDRIVE_ROOT="{group_id}/drive"
ONEDRIVE_ACCESS_TOKEN=fd6s7a98...
ONEDRIVE_DIR_TYPE=groups
  1. In the file config/filesystems.php, please add the following code snippet to the disks section
'onedrive' => [
    'driver' => 'onedrive',
    'root' => env('ONEDRIVE_ROOT'),
    'access_token' => env('ONEDRIVE_ACCESS_TOKEN'), //optional if demanded
    'directory_type' => env('ONEDRIVE_DIR_TYPE')
],
  1. Add the OneDriveAdapterServiceProvider in config/app.php
'providers' => [
    // ...
    Justus\FlysystemOneDrive\Providers\OneDriveAdapterServiceProvider::class,
    // ...
],

There are two established approaches of using the package

  • On demand: Recommended if you use a dynamic graph access token. (usage e. g. session('graph_access_token'))
$disk = Storage::build([
    'driver' => config('filesystems.disks.onedrive.driver'),
    'root' => config('filesystems.disks.onedrive.root'),
    'directory_type' => config('filesystems.disks.onedrive.directory_type'),
    'access_token' => session('graph_access_token')
]);

$disk->makeDirectory('test');
  • Default with Storage Facade: Recommended if you use a static graph access token.
Storage::disk('onedrive')->makeDirectory('test');

PHP Usage

Usage in php without Laravel framework

$options = [

];

$graph = new Graph();
$graph->setAccessToken('fd6s7a98...');

$adapter = new OneDriveAdapter($graph, 'root/path', $options);

$filesystem = new Filesystem($adapter);

$filesystem->createDirectory('test');

3. Changelog

Please see CHANGELOG for more information on recent changes.

4. Testing

composer test

5. Security

If you discover any security related issues, please write an email to jdonner@doerffler.com instead of using the issue tracker.

6. License

The MIT License (MIT). Please see License File for more information.

Contributors

Jusdon

51 commits

timo2o1o

8 commits

Chris8934

7 commits

Languages

PHP

100.0%