mirror of
https://github.com/rclone/rclone.git
synced 2024-11-25 17:57:44 +08:00
onedrive: add link sharing support #2178
This commit is contained in:
parent
1e2676df26
commit
411a6cc472
|
@ -250,6 +250,28 @@ type MoveItemRequest struct {
|
||||||
FileSystemInfo *FileSystemInfoFacet `json:"fileSystemInfo,omitempty"` // File system information on client. Read-write.
|
FileSystemInfo *FileSystemInfoFacet `json:"fileSystemInfo,omitempty"` // File system information on client. Read-write.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//CreateShareLinkRequest is the request to create a sharing link
|
||||||
|
//Always Type:view and Scope:anonymous for public sharing
|
||||||
|
type CreateShareLinkRequest struct {
|
||||||
|
Type string `json:"type"` //Link type in View, Edit or Embed
|
||||||
|
Scope string `json:"scope,omitempty"` //Optional. Scope in anonymousi, organization
|
||||||
|
}
|
||||||
|
|
||||||
|
//CreateShareLinkResponse is the response from CreateShareLinkRequest
|
||||||
|
type CreateShareLinkResponse struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Roles []string `json:"roles"`
|
||||||
|
Link struct {
|
||||||
|
Type string `json:"type"`
|
||||||
|
Scope string `json:"scope"`
|
||||||
|
WebURL string `json:"webUrl"`
|
||||||
|
Application struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
DisplayName string `json:"displayName"`
|
||||||
|
} `json:"application"`
|
||||||
|
} `json:"link"`
|
||||||
|
}
|
||||||
|
|
||||||
// AsyncOperationStatus provides information on the status of a asynchronous job progress.
|
// AsyncOperationStatus provides information on the status of a asynchronous job progress.
|
||||||
//
|
//
|
||||||
// The following API calls return AsyncOperationStatus resources:
|
// The following API calls return AsyncOperationStatus resources:
|
||||||
|
|
|
@ -1088,6 +1088,32 @@ func (f *Fs) Hashes() hash.Set {
|
||||||
return hash.Set(hash.QuickXorHash)
|
return hash.Set(hash.QuickXorHash)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PublicLink returns a link for downloading without accout.
|
||||||
|
func (f *Fs) PublicLink(remote string) (link string, err error) {
|
||||||
|
info, _, err := f.readMetaDataForPath(f.Root())
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
opts := newOptsCall(info.ID, "POST", "/createLink")
|
||||||
|
|
||||||
|
share := api.CreateShareLinkRequest{
|
||||||
|
Type: "view",
|
||||||
|
Scope: "anonymous",
|
||||||
|
}
|
||||||
|
|
||||||
|
var resp *http.Response
|
||||||
|
var result api.CreateShareLinkResponse
|
||||||
|
err = f.pacer.Call(func() (bool, error) {
|
||||||
|
resp, err = f.srv.CallJSON(&opts, &share, &result)
|
||||||
|
return shouldRetry(resp, err)
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
return result.Link.WebURL, nil
|
||||||
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------
|
// ------------------------------------------------------------
|
||||||
|
|
||||||
// Fs returns the parent Fs
|
// Fs returns the parent Fs
|
||||||
|
@ -1540,6 +1566,7 @@ var (
|
||||||
_ fs.DirMover = (*Fs)(nil)
|
_ fs.DirMover = (*Fs)(nil)
|
||||||
_ fs.DirCacheFlusher = (*Fs)(nil)
|
_ fs.DirCacheFlusher = (*Fs)(nil)
|
||||||
_ fs.Abouter = (*Fs)(nil)
|
_ fs.Abouter = (*Fs)(nil)
|
||||||
|
_ fs.PublicLinker = (*Fs)(nil)
|
||||||
_ fs.Object = (*Object)(nil)
|
_ fs.Object = (*Object)(nil)
|
||||||
_ fs.MimeTyper = &Object{}
|
_ fs.MimeTyper = &Object{}
|
||||||
_ fs.IDer = &Object{}
|
_ fs.IDer = &Object{}
|
||||||
|
|
|
@ -141,7 +141,7 @@ operations more efficient.
|
||||||
| Jottacloud | Yes | Yes | Yes | Yes | No | Yes | No | Yes | Yes |
|
| Jottacloud | Yes | Yes | Yes | Yes | No | Yes | No | Yes | Yes |
|
||||||
| Mega | Yes | No | Yes | Yes | No | No | No | No [#2178](https://github.com/ncw/rclone/issues/2178) | Yes |
|
| Mega | Yes | No | Yes | Yes | No | No | No | No [#2178](https://github.com/ncw/rclone/issues/2178) | Yes |
|
||||||
| Microsoft Azure Blob Storage | Yes | Yes | No | No | No | Yes | No | No [#2178](https://github.com/ncw/rclone/issues/2178) | No |
|
| Microsoft Azure Blob Storage | Yes | Yes | No | No | No | Yes | No | No [#2178](https://github.com/ncw/rclone/issues/2178) | No |
|
||||||
| Microsoft OneDrive | Yes | Yes | Yes | Yes | No [#575](https://github.com/ncw/rclone/issues/575) | No | No | No [#2178](https://github.com/ncw/rclone/issues/2178) | Yes |
|
| Microsoft OneDrive | Yes | Yes | Yes | Yes | No [#575](https://github.com/ncw/rclone/issues/575) | No | No | Yes | Yes |
|
||||||
| OpenDrive | Yes | Yes | Yes | Yes | No | No | No | No | No |
|
| OpenDrive | Yes | Yes | Yes | Yes | No | No | No | No | No |
|
||||||
| Openstack Swift | Yes † | Yes | No | No | No | Yes | Yes | No [#2178](https://github.com/ncw/rclone/issues/2178) | Yes |
|
| Openstack Swift | Yes † | Yes | No | No | No | Yes | Yes | No [#2178](https://github.com/ncw/rclone/issues/2178) | Yes |
|
||||||
| pCloud | Yes | Yes | Yes | Yes | Yes | No | No | No [#2178](https://github.com/ncw/rclone/issues/2178) | Yes |
|
| pCloud | Yes | Yes | Yes | Yes | Yes | No | No | No [#2178](https://github.com/ncw/rclone/issues/2178) | Yes |
|
||||||
|
|
Loading…
Reference in New Issue
Block a user