Google Drive - Copying a Google Slides file on src, produces a .pptx on dest

Hi all

I am copying files from one Google Shared Drive (SD from now) to another. I have found a behaviour that I quite don't understand, hope someone might have more info.

There is a Google Slides file in a folder in the source drive:

laptop:/Users $ rclone ls -l ClinicalTSD:"1_Projects/{REDACTED_FOLDER_NAME}"
       -1 lab notebook.pptx

And no md5sum can be produced for this file.

This file if you double click on it from the drive web interface, it opens directly on Google Slides. Like natively. It has the Google Slides icon.

Then I run a

rclone copy ClinicalTSD:"1_Projects/{REDACTED_FOLDER_NAME}" testSD:/test5 -vv

What then appears copied to the destination drive is this:

laptop:/Users $ rclone ls -l testSD:/test5
  8524963 lab notebook.pptx

And if I double click on this newly copied file, which has the Microsoft PPT icon, it takes a while to open it on Google Slides.

Does anybody know if this is normal and the files are identical anyway? It seems as if the Google Slides gets kind of "exported" to .pptx format. Could it be?

The rclone -vv output piece for this is:

2023/01/23 16:01:19 DEBUG : lab notebook.pptx: md5 = 32b3929d88e757d27ad69e9490c09208 OK
2023/01/23 16:01:19 DEBUG : lab notebook.pptx: Size and md5 of src and dst objects identical
2023/01/23 16:01:19 DEBUG : lab notebook.pptx: Updating size of doc after download to 8524963
2023/01/23 16:01:19 DEBUG : lab notebook.pptx: Src hash empty - aborting Dst hash check
2023/01/23 16:01:19 INFO  : lab notebook.pptx: Copied (Rcat, new)

How can rclone get the md5sum for the source object? This is what happens when I try it myself:

rclone md5sum ClinicalTSD:"1_Projects/{REDACTED}/lab notebook.pptx"
                                  lab notebook.pptx
laptop:/Users $

--------- DEBUG INFO

Run the command 'rclone version' and share the full output of the command.

rclone v1.61.1

  • os/version: darwin 11.6.7 (64 bit)
  • os/kernel: 20.6.0 (x86_64)
  • os/type: darwin
  • os/arch: amd64
  • go/version: go1.19.4
  • go/linking: dynamic
  • go/tags: none

Which cloud storage system are you using? (eg Google Drive)

Google Drive

The rclone config contents with secrets removed.

[ClinicalTSD]
type = drive
client_id = {REDACTED}
client_secret = {REDACTED}
scope = drive
token = {"access_token":"{REDACTED}}
team_drive = {REDACTED}
root_folder_id =

There is a whole section on Google Docs.

as they are a bit unique in the API unfortunately.

1 Like

Oh! Sorry! I completely missed that part of the documentation. Thanks a lot!!!

So I guess there is no way to copy the Google Docs without rclone exporting it first?
I guess the API doesn't allow it?

That is my understanding.

You can't download a "native" file format Google Doc, you can only export them.

You can server side copy them to other google drives though.

Hello Nick. Thanks for chiming in.

If I understand correctly, copying files inside the same Google Drive remote is going to be always server-side by default.

However, if it is between two different Google Drives, as the remote names would be necessarily different (e.g. rclone copy remote1:/test remote2:/test) the server-side copy will be disabled by default.

To make it work one would add the rclone flag:
--drive-server-side-across-configs

Would this be correct? And if so, why does the rclone documentation say this:

--drive-server-side-across-configs

Allow server-side operations (e.g. copy) to work across different drive configs.

This can be useful if you wish to do a server-side copy between two different Google drives. Note that this isn't enabled by default because it isn't easy to tell if it will work between any two configurations.

Why would it not work between two Google Drive remotes?

Thank you very much in advance.

Cheers,
M

Yes

Permissions. The destination remote needs permission to read files from the source remote and google gives a really unhelpful error 404 not found if it doesn't have permission.

1 Like

Thanks again.

AFAIK in Google Drives you grant permissions to users/groups, not to other drives.

Do you mean the user with whom you authenticated in the rclone config process for creating the two remotes has to have write permission on dest and read permision on source?

The user that you created for the destination remote only needs to have read on the source and write on the destination.

1 Like