Google Drive MD5 checksum for files

Solution 1:

edit: NB these instructions have changed slightly for the v3 API

I've figured out a quick way to get the MD5 checksums of the files uploaded and decided to share it here, too. Log into your Google Drive account, then:

Visit: https://developers.google.com/drive/v3/reference/files/list

Scroll down to the Try it! section.

Change "Authorize requests using OAuth 2.0" from OFF to ON by clicking on it, then select:

https://www.googleapis.com/auth/drive.metadata.readonly

and click Authorize.

Choose your account then click Accept.

Fill in the fields field with:

for v2 API:

items(md5Checksum,originalFilename)

for v3 API:

open "Show standard parameters" in GUI to see fields than

files(md5Checksum,originalFilename)

to only get a list of filenames and MD5 checksums.

Click Execute and you'll open a list with all the files uploaded to Google Drive and their MD5 checksums.

Solution 2:

API instructions

Google Developers - OAuth 2.0 Playground:

  • https://developers.google.com/oauthplayground/

Step 1: Select & authorize APIs:

  • Expand "Drive API v3".
  • Enable "https://www.googleapis.com/auth/drive.metadata.readonly".
  • Click "Authorize APIs".
  • Click "Allow".

Step 2: Exchange authorization code for tokens:

  • Click "Exchange authorization code for tokens".

Step 3: Configure request to API:

  • Enter the "Request URI".
  • Click "Send the request".

Request URI instructions

All files in folder

Get specific fields of files in a folder:

https://www.googleapis.com/drive/v3/files?q="folderId"+in+parents&fields=files(md5Checksum,+originalFilename)
//

Replace "folderId" with the folder ID.

You can use &fields=files(*) to get all of the file's fields.

Single file

Get specific fields of a file:

https://www.googleapis.com/drive/v3/files/fileId?fields=md5Checksum,+originalFilename
//

Replace "fileId" with the file ID.

You can use &fields=* to get all of the file's fields.

Parsing the JSON response

  • Open a JavaScript console.
  • Save the object into a variable.
  • Map the object.
  • Copy the result.

Code

var response = {
  "files": [
    {
      "md5Checksum": "0cc175b9c0f1b6a831c399e269772661", 
      "originalFilename": "a.txt"
    }, 
    {
      "md5Checksum": "92eb5ffee6ae2fec3ad71c777531578f", 
      "originalFilename": "b.txt"
    }
  ]
};


var result = response.files.map(function (file) { return (file.md5Checksum + " *" + file.originalFilename); }).join("\r\n");

console.log(result);
copy(result);