Class representing a personal OneDrive or SharePoint document library.
An R6 object of class
ms_drive, inheriting from
token: The token used to authenticate with the Graph host.
tenant: The Azure Active Directory tenant for this drive.
type: always "drive" for a drive object.
properties: The drive properties.
new(...): Initialize a new drive object. Do not call this directly; see 'Initialization' below.
delete(confirm=TRUE): Delete a drive. By default, ask for confirmation first.
update(...): Update the drive metadata in Microsoft Graph.
do_operation(...): Carry out an arbitrary operation on the drive.
sync_fields(): Synchronise the R object with the drive metadata in Microsoft Graph.
list_items(...), list_files(...): List the files and folders under the specified path. See 'File and folder operations' below.
download_file(src, dest, overwrite): Download a file.
upload_file(src, dest, blocksize): Upload a file.
create_folder(path): Create a folder.
open_item(path): Open a file or folder.
create_share_link(...): Create a shareable link for a file or folder.
delete_item(path, confirm, by_item): Delete a file or folder. By default, ask for confirmation first. For personal OneDrive, deleting a folder will also automatically delete its contents; for business OneDrive or SharePoint document libraries, you may need to set
by_item=TRUE to delete the contents first depending on your organisation's policies. Note that this can be slow for large folders.
get_item(path): Get an item representing a file or folder.
get_item_properties(path): Get the properties (metadata) for a file or folder.
set_item_properties(path, ...): Set the properties for a file or folder.
list_shared_items(...), list_shared_files(...): List the drive items shared with you. See 'Shared items' below.
Creating new objects of this class should be done via the
get_drive methods of the
ms_site classes. Calling the
new() method for this class only constructs the R object; it does not call the Microsoft Graph API to retrieve or create the actual drive.
This class exposes methods for carrying out common operations on files and folders. They call down to the corresponding methods for the
ms_drive_item class. In this context, any paths to child items are relative to the root folder of the drive.
open_item opens the given file or folder in your browser. If the file has an unrecognised type, most browsers will attempt to download it.
list_items(path, info, full_names, pagesize) lists the items under the specified path.
list_files is a synonym for
upload_file transfer files between the local machine and the drive. For
download_file, the default destination folder is the current (working) directory of your R session. For
upload_file, there is no default destination folder; make sure you specify the destination explicitly.
create_folder creates a folder with the specified path. Trying to create an already existing folder is an error.
create_share_link(path, type, expiry, password, scope) returns a shareable link to the item.
delete_item deletes a file or folder. By default, it will ask for confirmation first.
get_item retrieves the file or folder with the given path, as an object of class
get_item_properties is a convenience function that returns the properties of a file or folder as a list.
set_item_properties sets the properties of a file or folder. The new properties should be specified as individual named arguments to the method. Any existing properties that aren't listed as arguments will retain their previous values or be recalculated based on changes to other properties, as appropriate. You can also call the
update method on the corresponding
list_shared_items method lists the files and folders that have been shared with you. This is similar to
list_items, modified to handle the fact that the listed items reside on another drive or document library. The arguments are:
info: The information to return: either "partial", "items" or "all". If "partial", a data frame is returned containing the name, size, whether the item is a file or folder, and a list of drive item objects. If "items", only the list of drive items is returned. If "all", a data frame is returned containing all the properties for each item.
allow_external: Whether to include items that were shared from outside tenants. The default is FALSE.
filter, n: See 'List methods' below.
pagesize: The number of results to return for each call to the REST endpoint. You can try reducing this argument below the default of 1000 if you are experiencing timeouts.
The returned object will contain a list of drive items, that you can use to access the shared files/folders. If
info is "item", the returned object is the list; if "partial" or "all" it is the
remoteItem column in the data frame.
list_shared_files is a synonym for
list_* methods have
n arguments to limit the number of results. The former should be an OData expression as a string to filter the result set on. The latter should be a number setting the maximum number of (filtered) results to return. The default values are
ms_graph_pager iterator object is returned instead to allow manual iteration over the results.
Support in the underlying Graph API for OData queries is patchy. Not all endpoints that return lists of objects support filtering, and if they do, they may not allow all of the defined operators. If your filtering expression results in an error, you can carry out the operation without filtering and then filter the results on the client side.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
## Not run: # personal OneDrive mydrv <- get_personal_onedrive() # OneDrive for Business busdrv <- get_business_onedrive("mycompany") # shared document library for a SharePoint site site <- get_sharepoint_site("My site") drv <- site$get_drive() ## file/folder operationss drv$list_files() drv$list_files("path/to/folder", full_names=TRUE) # download a file -- default destination filename is taken from the source drv$download_file("path/to/folder/data.csv") # shareable links drv$create_share_link("myfile") drv$create_share_link("myfile", type="edit", expiry="24 hours") drv$create_share_link("myfile", password="Use-strong-passwords!") # file metadata (name, date created, etc) drv$get_item_properties("myfile") # rename a file drv$set_item_properties("myfile", name="newname") # accessing shared files shared_df <- drv$list_shared_items() shared_df$remoteItem[]$open() shared_items <- drv$list_shared_items(info="items") shared_items[]$open() ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.