Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

drive: implement cleanup (empty trash) - addresses #575 #1648

Merged
merged 1 commit into from Sep 6, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
18 changes: 12 additions & 6 deletions docs/content/drive.md
Expand Up @@ -62,9 +62,9 @@ Choose a number from below, or type in your own value
\ "yandex"
Storage> 8
Google Application Client Id - leave blank normally.
client_id>
client_id>
Google Application Client Secret - leave blank normally.
client_secret>
client_secret>
Remote config
Use auto config?
* Say Y if not sure
Expand All @@ -82,8 +82,8 @@ n) No
y/n> n
--------------------
[remote]
client_id =
client_secret =
client_id =
client_secret =
token = {"AccessToken":"xxxx.x.xxxxx_xxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","RefreshToken":"1/xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxx","Expiry":"2014-03-16T13:57:58.955387075Z","Extra":null}
--------------------
y) Yes this is OK
Expand Down Expand Up @@ -140,8 +140,8 @@ Choose a number from below, or type in your own value
Enter a Team Drive ID> 1
--------------------
[remote]
client_id =
client_secret =
client_id =
client_secret =
token = {"AccessToken":"xxxx.x.xxxxx_xxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","RefreshToken":"1/xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxx","Expiry":"2014-03-16T13:57:58.955387075Z","Extra":null}
team_drive = xxxxxxxxxxxxxxxxxxxx
--------------------
Expand Down Expand Up @@ -173,6 +173,12 @@ By default rclone will delete files permanently when requested. If
sending them to the trash is required instead then use the
`--drive-use-trash` flag.

### Emptying trash ###

If you wish to empty your trash you can use the `rclone cleanup remote:`
command which will permanently delete all your trashed files. This command
does not take any path arguments.

### Specific options ###

Here are the command line options specific to this cloud storage
Expand Down
2 changes: 1 addition & 1 deletion docs/content/overview.md
Expand Up @@ -124,7 +124,7 @@ operations more efficient.
| Dropbox | Yes | Yes | Yes | Yes | No [#575](https://github.com/ncw/rclone/issues/575) | No | Yes |
| FTP | No | No | Yes | Yes | No | No | Yes |
| Google Cloud Storage | Yes | Yes | No | No | No | Yes | No [#1614](https://github.com/ncw/rclone/issues/1614) |
| Google Drive | Yes | Yes | Yes | Yes | No [#575](https://github.com/ncw/rclone/issues/575) | No | Yes |
| Google Drive | Yes | Yes | Yes | Yes | Yes | No | Yes |
| HTTP | No | No | No | No | No | No | No |
| Hubic | Yes † | Yes | No | No | No | Yes | No [#1614](https://github.com/ncw/rclone/issues/1614) |
| Microsoft Azure Blob Storage | Yes | Yes | No | No | No | Yes | No |
Expand Down
13 changes: 13 additions & 0 deletions drive/drive.go
Expand Up @@ -905,6 +905,19 @@ func (f *Fs) Purge() error {
return nil
}

// CleanUp empties the trash
func (f *Fs) CleanUp() error {
err := f.pacer.Call(func() (bool, error) {
err := f.svc.Files.EmptyTrash().Do()
return shouldRetry(err)
})

if err != nil {
return err
}
return nil
}

// Move src to this remote using server side move operations.
//
// This is stored with the remote path given
Expand Down
3 changes: 2 additions & 1 deletion drive/drive_internal_test.go
Expand Up @@ -3,9 +3,10 @@ package drive
import (
"testing"

"google.golang.org/api/drive/v2"

"github.com/pkg/errors"
"github.com/stretchr/testify/assert"
"google.golang.org/api/drive/v2"
)

func TestInternalParseExtensions(t *testing.T) {
Expand Down