mirror of
https://github.com/abraunegg/onedrive
synced 2024-05-04 06:53:23 +02:00
Update client use of libcurl docs
* Update client use of libcurl docs
This commit is contained in:
parent
86b4cd3452
commit
0efe298b81
|
@ -1,19 +1,19 @@
|
|||
# OneDrive Client for Linux Application Architecture
|
||||
|
||||
## How does the client work at a high level?
|
||||
The client utilises the 'libcurl' library to communicate with the Microsoft Authentication Service and the Microsoft Graph API. The diagram below shows this high level interaction with the Microsoft services online:
|
||||
The client utilises the 'libcurl' library to communicate with Microsoft OneDrive via the Microsoft Graph API. The diagram below shows this high level interaction with the Microsoft and GitHub API services online:
|
||||
|
||||
![client_use_of_libcurl](./puml/client_use_of_libcurl.png)
|
||||
|
||||
Depending on your operational environment, it is possible to 'tweak' the following options which will modify how libcurl operates with it's interaction with Microsoft OneDrive services:
|
||||
|
||||
* Downgrade all HTTPS operations to use HTTP1.1 ('force_http_11')
|
||||
* Control how long a specific transfer should take before it is considered too slow and aborted ('operation_timeout')
|
||||
* Control libcurl handling of DNS Cache Timeout ('dns_timeout')
|
||||
* Control the maximum time allowed for the connection to be established ('connect_timeout')
|
||||
* Control the timeout for activity on an established HTTPS connection ('data_timeout')
|
||||
* Control what IP protocol version should be used when communicating with OneDrive ('ip_protocol_version')
|
||||
* Control what User Agent is presented to Microsoft services ('user_agent')
|
||||
* Downgrade all HTTPS operations to use HTTP1.1 (Config Option: `force_http_11`)
|
||||
* Control how long a specific transfer should take before it is considered too slow and aborted (Config Option: `operation_timeout`)
|
||||
* Control libcurl handling of DNS Cache Timeout (Config Option: `dns_timeout`)
|
||||
* Control the maximum time allowed for the connection to be established (Config Option: `connect_timeout`)
|
||||
* Control the timeout for activity on an established HTTPS connection (Config Option: `data_timeout`)
|
||||
* Control what IP protocol version should be used when communicating with OneDrive (Config Option: `ip_protocol_version`)
|
||||
* Control what User Agent is presented to Microsoft services (Config Option: `user_agent`)
|
||||
|
||||
**Note:** The default 'user_agent' value conforms to specific Microsoft requirements to identify as an ISV that complies with OneDrive traffic decoration requirements. Changing this value potentially will impact how Microsoft see's your client, thus your traffic may get throttled. For further information please read: https://learn.microsoft.com/en-us/sharepoint/dev/general-development/how-to-avoid-getting-throttled-or-blocked-in-sharepoint-online
|
||||
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 52 KiB |
|
@ -1,16 +1,32 @@
|
|||
@startuml
|
||||
participant "OneDrive Client\nfor Linux" as od
|
||||
participant "libcurl" as lc
|
||||
participant "Client Web Browser" as browser
|
||||
participant "Microsoft Authentication Service\n(OAuth 2.0 Endpoint)" as oauth
|
||||
participant "GitHub API" as github
|
||||
participant "Microsoft Graph API" as graph
|
||||
|
||||
activate od
|
||||
activate lc
|
||||
|
||||
od->oauth: Request access token
|
||||
od->od: Generate Authentication\nService URL
|
||||
activate browser
|
||||
od->browser: Navigate to Authentication\nService URL via Client Web Browser
|
||||
browser->oauth: Request access token
|
||||
activate oauth
|
||||
oauth-->od: Access token
|
||||
oauth-->browser: Access token
|
||||
browser-->od: Access token
|
||||
deactivate oauth
|
||||
deactivate browser
|
||||
|
||||
od->lc: Check application version\nvia api.github.com
|
||||
activate github
|
||||
lc->github: Query release status
|
||||
activate github
|
||||
github-->lc: Release information
|
||||
deactivate github
|
||||
lc-->od: Process release information
|
||||
deactivate lc
|
||||
|
||||
loop API Communication
|
||||
od->lc: Construct HTTPS request (with token)
|
||||
|
@ -22,4 +38,4 @@ loop API Communication
|
|||
lc-->od: Process response
|
||||
deactivate lc
|
||||
end
|
||||
@enduml
|
||||
@enduml
|
||||
|
|
Loading…
Reference in a new issue