Pyfilesystem2 implementation for OneDrive using Microsoft Graph API
Project description
fs.onedrivefs
Implementation of pyfilesystem2 file system using OneDrive
Usage
fs.onedrivefs
can create a requests_oauthlib.OAuth2Session
for you. This way the OAuth2Session
is going to refresh the tokens for you.
onedriveFS = OneDriveFS(
clientId=<your client id>,
clientSecret=<your client secret>,
token=<token JSON saved by oauth2lib>,
SaveToken=<function which saves a new token string after refresh>)
# onedriveFS is now a standard pyfilesystem2 file system
You can handle the tokens outside of the library by passing a requests.Session
.
Here is an example of a custom session using MSAL Python
class MSALSession(OAuth2Session):
def __init__(self, client: msal.ClientApplication):
super().__init__()
self.client = client
def request(self, *args, **kwargs):
account = self.client.get_accounts()[0]
self.token = self.client.acquire_token_silent_with_error(
scopes=["Files.ReadWrite"], account=account
)
return super().request(*args, **kwargs)
client = msal.ConfidentialClientApplication(
client_id=<your client id>,
client_credential=<your client secret>,
authority=f"https://login.microsoftonline.com/<your tenant>",
token_cache=<your token cache>,
)
# Authentication flow to populate the token cache
# YOUR AUTHENTICATION FLOW
session = MSALSession(client=client)
onedriveFS = OneDriveFS(session=session)
# onedriveFS is now a standard pyfilesystem2 file system
Register your app here to get a client ID and secret
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fs_onedrivefs-1.2.1.tar.gz
(595.8 kB
view hashes)
Built Distribution
Close
Hashes for fs_onedrivefs-1.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0e17084d57190f3c6cb7f0d50aada860a7e0cb0b7400ce417137f0be7e5b95e |
|
MD5 | 6f73819834496c698a322965728053b3 |
|
BLAKE2b-256 | 85762a17e53c0b4827ca98fc95e08c61f4a2c6755505170782aa69d94b79d292 |