mirror of
https://github.com/rclone/rclone.git
synced 2025-12-15 15:53:41 +00:00
about: add new command 'about' to get quota info from a remote
Implemented for drive only. Relates to #1138 and #1564.
This commit is contained in:
committed by
Nick Craig-Wood
parent
b83814082b
commit
94e277d759
13
backend/cache/cache.go
vendored
13
backend/cache/cache.go
vendored
@@ -1413,6 +1413,18 @@ func (f *Fs) CleanUp() error {
|
||||
return do()
|
||||
}
|
||||
|
||||
// About gets quota information from the Fs
|
||||
func (f *Fs) About() error {
|
||||
f.CleanUpCache(false)
|
||||
|
||||
do := f.Fs.Features().About
|
||||
if do == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return do()
|
||||
}
|
||||
|
||||
// Stats returns stats about the cache storage
|
||||
func (f *Fs) Stats() (map[string]map[string]interface{}, error) {
|
||||
return f.cache.Stats()
|
||||
@@ -1551,4 +1563,5 @@ var (
|
||||
_ fs.Wrapper = (*Fs)(nil)
|
||||
_ fs.ListRer = (*Fs)(nil)
|
||||
_ fs.ChangeNotifier = (*Fs)(nil)
|
||||
_ fs.Abouter = (*Fs)(nil)
|
||||
)
|
||||
|
||||
@@ -1050,6 +1050,29 @@ func (f *Fs) CleanUp() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// About gets quota information
|
||||
func (f *Fs) About() error {
|
||||
var about *drive.About
|
||||
var err error
|
||||
err = f.pacer.Call(func() (bool, error) {
|
||||
about, err = f.svc.About.Get().Fields("storageQuota").Do()
|
||||
return shouldRetry(err)
|
||||
})
|
||||
if err != nil {
|
||||
fs.Errorf(f, "Failed to get Drive storageQuota: %v", err)
|
||||
return nil
|
||||
}
|
||||
quota := float64(about.StorageQuota.Limit) / (1 << 30)
|
||||
usagetotal := float64(about.StorageQuota.Usage) / (1 << 30)
|
||||
usagedrive := float64(about.StorageQuota.UsageInDrive) / (1 << 30)
|
||||
usagetrash := float64(about.StorageQuota.UsageInDriveTrash) / (1 << 30)
|
||||
fmt.Printf("Quota: %.0f GiB | Used: %.1f GiB (Trash: %.1f GiB) | Available: %.1f GiB | Usage: %d%%\n",
|
||||
quota, usagedrive, usagetrash, quota-usagedrive, int((usagedrive/quota)*100))
|
||||
fmt.Printf("Space used in other Google services (such as Gmail): %.2f GiB\n",
|
||||
usagetotal-usagedrive)
|
||||
return nil
|
||||
}
|
||||
|
||||
// Move src to this remote using server side move operations.
|
||||
//
|
||||
// This is stored with the remote path given
|
||||
|
||||
Reference in New Issue
Block a user