Short answer: a cloud client showing Synced, Up to date, or a green checkmark is useful evidence that the provider believes the transfer completed. It is not the same thing as an independent end-to-end integrity test.

If the file matters enough that silent corruption would be expensive — a 200 GB video master, a disk image, a RAW archive, a legal evidence bundle, a database export, a research dataset — the strongest practical verification is to compare a checksum calculated from the original bytes with either:

  1. a checksum exposed by the cloud provider for the stored object; or
  2. a checksum calculated after downloading the file again to a different local path.

The second method works across almost every storage service because it does not depend on a provider exposing its internal metadata.

The mental model is simple:

Transfer complete is a status. Integrity verification is a comparison.

What a checksum actually proves

A cryptographic checksum is a compact fingerprint derived from file contents. If two copies produce the same strong hash, you have powerful evidence that the byte sequences are identical.

For example, you can calculate a SHA-256 hash for a local file before upload:

``text original.mov → SHA-256 → 91f0...e3b2 ``

Then independently hash the copy you downloaded from the cloud:

``text re-downloaded-original.mov → SHA-256 → 91f0...e3b2 ``

If those values match, the downloaded cloud object matches the original input at the byte level.

That is a much stronger test than comparing:

  • filename;
  • folder location;
  • thumbnail appearance;
  • duration shown in a preview player;
  • reported file size alone;
  • a green sync icon.

File size is useful, but two different files can have exactly the same size. A preview proves that the provider can render something; it does not prove that the full stored object is identical to your source.

If the thing you are protecting is a long-term archive rather than a working copy, also read Cloud Backup vs Cloud Storage. Integrity verification answers “Did this copy arrive intact?” It does not answer “Do I have enough independent copies to survive deletion, account loss or ransomware?”

The safest provider-neutral verification workflow

For an important upload, use this sequence.

1. Hash the original before upload

Use a modern hash such as SHA-256 where practical.

On macOS or Linux:

``bash shasum -a 256 "Archive-2026.tar" ``

On modern Windows PowerShell:

``powershell Get-FileHash "D:\Archive-2026.tar" -Algorithm SHA256 ``

Record the result somewhere separate from the file itself.

2. Upload the file and wait for the provider to report completion

Do not hash a partially written source that an application is still modifying. Close the producing application or generate a stable export first.

If the source is a live PST, database or catalog, normal file sync may be the wrong protection mechanism entirely. Use an application-consistent backup or export before you attempt integrity verification.

3. Verify the cloud object exists independently

Use the provider's web interface, API, or a second trusted device. This catches a surprisingly common mistake: believing a local placeholder or cached file is proof that the remote object exists.

4. Obtain an independent checksum

Best case: the provider exposes a documented content checksum through an API.

Universal fallback: download the file to a new location and calculate SHA-256 on that downloaded copy.

5. Compare hashes exactly

A one-character difference means the byte streams do not match.

Do not “round,” truncate, or compare only the first few characters for an archival verification record.

6. Keep the original until verification succeeds

The most dangerous workflow is:

upload → green icon → delete source immediately

The safer workflow is:

hash source → upload → verify remote → re-download/hash or compare provider hash → only then decide whether the source copy can be retired

Even after successful verification, keeping independent copies is usually appropriate for important data.

Safe integrity verification workflow from source hash to cloud object and independent comparison

Dropbox: content_hash is designed for this exact job

Dropbox exposes a content_hash field in file metadata through its API. Dropbox explicitly says this value can be used to verify that a local version matches the copy stored in Dropbox.

There is one important detail: Dropbox's content hash is not simply SHA-256(file).

Dropbox uses its own documented block-based algorithm. In simplified form, the client:

  1. splits the file into blocks;
  2. hashes each block with SHA-256;
  3. concatenates those block hashes;
  4. hashes that concatenation again with SHA-256.

That means you cannot compare a normal sha256sum file directly with Dropbox content_hash and expect them to match.

You must implement Dropbox's documented algorithm or use a tool/library that does.

What this proves

If your locally calculated Dropbox content hash equals the API content_hash, you have provider-side metadata that represents the same file content according to Dropbox's documented algorithm.

What ordinary users should do

If you do not use the Dropbox API, the provider-neutral method remains perfectly valid:

  1. hash source with SHA-256;
  2. upload;
  3. download the stored file to a different path;
  4. SHA-256 the downloaded copy;
  5. compare.

Do not confuse Dropbox's preview generation with the original stored file. Preview systems can generate derivative representations while the downloadable source remains separate.

Google Drive: binary files can expose MD5, SHA-1 and SHA-256 through the API

Google Drive's current API documentation exposes checksum fields for files whose binary content is actually stored in Drive:

  • md5Checksum;
  • sha1Checksum;
  • sha256Checksum.

That makes Google Drive unusually convenient for programmatic integrity verification of ordinary uploaded binary files.

There is a major scope boundary: these fields do not apply in the same way to Google Docs Editors files such as native Docs, Sheets and Slides, because those are not ordinary uploaded binary files with a single downloadable byte representation.

Good use case

Suppose you upload a 70 GB .tar archive.

You can:

  1. calculate SHA-256 locally;
  2. upload the archive;
  3. query Drive file metadata through the API;
  4. request sha256Checksum;
  5. compare it with the local value.

For binary archive workflows, that is a strong verification path.

Important caveat

A checksum exposed in an API is primarily a developer/power-user surface. The normal Drive web UI is not a general checksum dashboard for every consumer upload.

If you want a workflow that does not depend on API access, use the re-download-and-hash method.

OneDrive: QuickXorHash is the guaranteed cross-account hash — not SHA-256

Microsoft Graph exposes a hashes resource for OneDrive items.

The current Microsoft documentation lists fields including:

  • CRC32 when available;
  • SHA-1 when available;
  • QuickXorHash;
  • a sha256Hash property that Microsoft explicitly says is not supported and should not be used.

The most important line in Microsoft's documentation is that QuickXorHash is the only hash value guaranteed to be available for both OneDrive for home and OneDrive for work or school.

That means an article telling you to “read the OneDrive SHA-256 field” as a universal verification strategy would be wrong.

What QuickXorHash is good for

Microsoft describes it as a proprietary hash that can be used to determine whether file contents changed.

For API-driven integrity workflows, you can calculate QuickXorHash locally using Microsoft's published algorithm and compare it with the OneDrive metadata value.

What to do if you want SHA-256 anyway

Use the provider-neutral route:

  1. calculate local SHA-256;
  2. upload to OneDrive;
  3. independently download the stored file;
  4. calculate SHA-256 on the downloaded copy;
  5. compare.

That does not require Microsoft to expose SHA-256 in Graph.

pCloud: a dedicated checksumfile API makes server-side verification unusually explicit

pCloud publishes a dedicated API method named checksumfile whose job is exactly what the name implies: calculate checksums for a stored file.

The current API documentation says:

  • SHA-1 is returned from both US and Europe API servers;
  • MD5 is returned by the US API server;
  • SHA-256 is returned by the Europe API server.

pCloud even explains why MD5 is not included on the European side: it is an old algorithm with known collision weaknesses.

That is a technically useful API surface because it gives an authenticated client a direct way to ask pCloud for a checksum of the object already stored in the account.

Do not overread this advantage

This does not prove that pCloud is uniquely safe from corruption.

Dropbox, Google and Microsoft also expose documented content hashes through APIs, using different algorithms and metadata models.

The real advantage is narrower:

pCloud gives developers an explicit checksum endpoint rather than requiring checksum information to be inferred from general file metadata.

Region matters to the algorithm you receive

Because pCloud operates US and European API endpoints, the exact checksum set differs by region. An automation that blindly expects sha256 on every account can therefore fail even though the file itself is fine.

If SHA-256 is mandatory for your own evidence record and the account's API does not return it, simply download the file and calculate SHA-256 locally.

pCloud is not the right choice merely because an API checksum exists

If your workflow depends on Google Workspace collaboration, Microsoft 365, or Dropbox-specific team sharing, a checksum endpoint does not outweigh the rest of the workflow.

But if you are building a storage-first archive process and want API-level checksum verification as one part of that process, pCloud is a legitimate service to compare.

If you are building a storage-first archive rather than an office workflow

Compare the storage model after you define how you will verify each ingest.

If your archive process already includes checksums, independent copies and periodic restore tests, compare pCloud's current personal plans against the capacity you actually need. The checksum API is useful evidence infrastructure — not a substitute for a backup strategy.

Check whether pCloud fits the archive workflow → Affiliate link · Opens pCloud's current personal plans. Verify current capacity, pricing, API behaviour and terms before choosing.

iCloud Drive: do not invent a checksum field that Apple does not publish to consumers

Apple's current consumer iCloud Drive documentation explains syncing, downloading, storage states and file recovery, but CloudScope could not verify a documented consumer-facing iCloud Drive checksum field comparable to Dropbox content_hash, Google Drive's binary-file checksums, OneDrive QuickXorHash or pCloud checksumfile.

That absence changes the verification method, not the standard of proof.

For an important iCloud Drive upload:

  1. calculate SHA-256 before upload;
  2. let iCloud finish uploading;
  3. confirm the object is present from another trusted iCloud view;
  4. download the file again from iCloud Drive to another path or device;
  5. calculate SHA-256 on the downloaded file;
  6. compare with the original hash.

Do not reduce the standard merely because the provider does not expose a convenient checksum field in ordinary documentation.

This also avoids a second mistake: assuming that because a file appears in Finder, its full remote bytes have already been independently verified. Cloud-backed filesystem visibility and content integrity are different layers.

Five-provider comparison: what can you actually verify?

ProviderDocumented provider-side hash surfaceAlgorithm(s)Normal consumer UI shows checksum?Universal fallback
DropboxYes, API content_hashDropbox block-based SHA-256 constructionNot as a general consumer checksum displayRe-download + SHA-256
Google DriveYes, Drive API for stored binary filesMD5, SHA-1, SHA-256 when available/applicableNot a general checksum dashboardRe-download + SHA-256
OneDriveYes, Microsoft Graph hashesQuickXorHash guaranteed; CRC32/SHA-1 when available; SHA-256 unsupportedNot a general checksum dashboardRe-download + SHA-256
iCloud DriveNo comparable public consumer checksum surface verifiedNo documented general checksum field verifiedRe-download + SHA-256
pCloudYes, dedicated checksumfile APISHA-1 both regions; SHA-256 EU; MD5 USNot a general consumer checksum dashboardRe-download + SHA-256

The important conclusion is not that one provider “has checksums” and another does not.

The important conclusion is:

You can build an end-to-end verification workflow even when the provider exposes no convenient hash — because the downloaded bytes can always be hashed independently.

Why file size alone is not enough

A common verification shortcut is:

“The source is 82,347,112,448 bytes and the cloud says the file is 82,347,112,448 bytes, so it must be correct.”

Matching size is useful evidence, but it is not proof of identical contents.

Two files can have exactly the same byte length while containing different bytes.

Use size as a cheap first-stage check:

  • wrong size → definite problem;
  • same size → continue to checksum if integrity matters.

This is especially relevant when moving large photo/video libraries. If your question is whether a provider changes media quality rather than whether transport corrupted the binary object, that is a different layer: storage originals, previews, streaming transcodes and upload-time conversion have to be separated.

Do not use MD5 as your only high-assurance integrity record if stronger hashes are available

MD5 is still useful in some operational contexts for accidental-corruption detection, and providers continue to expose it for compatibility. But it has known collision weaknesses and should not be treated as the strongest available cryptographic evidence when SHA-256 is easy to calculate.

For personal archive verification, a sensible default is:

SHA-256 source manifest + provider-specific metadata where useful + periodic re-download sample verification

Provider-specific hashes are valuable, but a portable SHA-256 manifest survives migration between providers.

That portability matters. If you move 5 TB from Google Drive to pCloud five years from now, your own SHA-256 manifest can still verify the files without depending on either vendor's proprietary metadata format.

Build a manifest before a multi-terabyte migration

For a one-off large migration, hashing files one by one manually becomes impractical. A manifest turns the process into an auditable dataset.

A simple manifest can contain:

``text SHA256 | relative path | byte size ``

Example:

``text 91f0...e3b2 | Photos/2024/IMG_8841.CR3 | 38492117 0c42...a991 | Video/Final/master.mov | 184982347112 34aa...6f10 | Docs/contracts.zip | 921881044 ``

The strongest operational sequence is:

  1. freeze or snapshot the source tree;
  2. generate the manifest;
  3. upload;
  4. verify provider-side counts and gross sizes;
  5. compare provider hashes where available;
  6. re-download a sample — or every file if the archive justifies it;
  7. retain the manifest with at least one independent copy.

For very large archives, the manifest can detect not only corruption but also missing files and accidental duplicate-name handling.

Manifest-based cloud archive verification architecture

A checksum does not prove you uploaded the right file

Checksums can answer:

“Are these two byte sequences identical?”

They cannot answer:

“Was this the file I intended to preserve?”

If you hashed the wrong export, both source and cloud hashes can match perfectly while the workflow is still wrong.

That is why a good archive record includes more than a hash:

  • path;
  • filename;
  • byte size;
  • creation/modification context where relevant;
  • expected file count;
  • hash algorithm;
  • hash value;
  • verification date.

For media, you may also record codec, resolution, duration or other format-level metadata as an additional sanity check.

A checksum also does not replace version history or backup

Suppose a file uploaded perfectly today and your SHA-256 verification passes.

Tomorrow, ransomware encrypts the synced file and the encrypted version propagates to the cloud.

The new corrupted/encrypted version can itself have a perfectly valid checksum. Integrity verification tells you the bytes arrived correctly; it does not tell you those bytes are the version you wanted.

That is why data protection has multiple independent questions:

  1. Integrity: did the copy arrive unchanged?
  2. Versioning: can I recover an earlier state after an unwanted change?
  3. Redundancy: do I have another independent copy if this account disappears?
  4. Authenticity: do I know this is the intended file/version?
  5. Availability: can I retrieve it when I need it?

A green sync icon answers only a small part of that stack.

If you are designing long-term storage, use Cloud Storage vs External Hard Drive to decide where independent copies should live. If pCloud's virtual-drive model is part of the design, How pCloud Drive Cache Actually Works explains why local cache and durable cloud storage should not be confused.

How often should you re-verify an archive?

There is no universal schedule because the risk and cost vary by dataset.

A practical risk-based model is:

Low-value replaceable files

Upload completion plus occasional spot checks may be enough.

Important personal archives

Keep a SHA-256 manifest and periodically sample re-downloads.

Professional masters / legal / research material

Consider full verification at ingest, independent copies, immutable/offline protection where appropriate, and scheduled restore tests.

After a migration

Re-run verification. Do not assume a provider-to-provider migration preserved every byte merely because both services report the same number of files.

After suspicious sync behaviour

If you saw conflicts, interrupted transfers, unexpected file-size changes or disk errors, verify the affected files before deleting any known-good copy.

What not to do

Do not delete the only original because the upload progress reached 100%

Completion status is not independent verification.

Do not compare a Dropbox content_hash directly with normal SHA-256

Dropbox's documented algorithm is different.

Do not expect OneDrive Graph SHA-256 to be universally available

Microsoft explicitly says the sha256Hash property is unsupported; QuickXorHash is the guaranteed cross-account hash.

Do not expect Google checksum fields on native Docs/Sheets/Slides

Those fields apply to stored binary content, not every Google-native document type.

Do not assume pCloud returns the same checksum set in US and EU regions

The documented algorithms differ by API region.

Do not invent an iCloud checksum just to make the comparison table symmetrical

When the provider does not document a comparable public checksum surface, use independent re-download verification instead.

The decision rule

If losing the file would cost less than the time required to verify it, ordinary sync status may be enough.

If losing the file would be expensive, emotionally irreplaceable, legally significant or operationally disruptive, the extra verification step is cheap insurance.

Most people only start thinking about checksums after something looks wrong. By then, they may already have deleted the source they needed for comparison.

The better archive habit is the opposite:

Create the fingerprint while you still trust the source. Then make the cloud prove it can reproduce the same bytes.

That closes the integrity question before you make the irreversible decision to retire the original copy.

Related technical reading

Reverse internal link suggestions

Add only after this article is published and verified as direct HTTP 200:

  1. /articles/backup-vs-cloud-storage/ — add a link from the backup verification / restore-testing section.
  2. /articles/cloud-storage-vs-external-hard-drive/ — add a link where archive integrity and migration validation are discussed.
  3. /articles/pcloud-drive-cache-explained/ — add a link clarifying that cache presence is not integrity verification.

Do not add these reverse links before the new canonical URL exists on production. This avoids creating crawlable internal links to a future 404.

Image metadata

1. Hero — integrity chain

  • Filename: cloud-upload-integrity-verification-hero.svg
  • ALT: End-to-end cloud upload integrity diagram comparing a local checksum with a provider-side or re-downloaded copy
  • Purpose: Show that sync status and checksum comparison are different layers.
  • Placement: After introduction.
  • Dimensions: 1200 × 760.

2. Safe verification workflow

  • Filename: cloud-upload-integrity-safe-workflow.svg
  • ALT: Safe cloud upload verification workflow from source checksum through upload, remote confirmation, re-download and hash comparison
  • Purpose: Give readers a reproducible procedure before deleting a source copy.
  • Placement: After the provider-neutral workflow.
  • Dimensions: 1200 × 760.

3. Manifest architecture

  • Filename: cloud-upload-integrity-manifest-architecture.svg
  • ALT: Manifest-based archive verification architecture using SHA-256, relative paths, file sizes and independent cloud verification
  • Purpose: Explain scalable integrity validation for large migrations.
  • Placement: In the migration-manifest section.
  • Dimensions: 1200 × 760.

Publication / indexing QA — mandatory before wiring

This draft must not enter production routing or sitemap until every check below passes:

  1. verify-cloud-upload-integrity-checksum is registered exactly once.
  2. /articles/verify-cloud-upload-integrity-checksum/ returns HTTP 200 directly, not through 301/302.
  3. Canonical equals https://cloudscope.org/articles/verify-cloud-upload-integrity-checksum/ exactly.
  4. No second alias such as /cloud-checksum-verification/ or /verify-cloud-file-hash/ is generated.
  5. All three /assets/cloud-upload-integrity-*.svg paths exist in the production asset bundle before indexing.
  6. Every internal link in the published article resolves directly to an existing production URL.
  7. Only the final self-canonical URL is included in sitemap.
  8. Draft metadata is removed/converted by the build pipeline without producing a second crawlable draft route.

Sources and verification

Product and API behaviour can change. These primary sources were checked on 21 August 2026:

  1. Dropbox Developers — DBX File Access Guide / content hashing: https://developers.dropbox.com/dbx-file-access-guide
  2. Google Drive API v3 — Files resource checksum fields: https://developers.google.com/workspace/drive/api/reference/rest/v3/files
  3. Microsoft Graph v1.0 — hashes resource type: https://learn.microsoft.com/en-us/graph/api/resources/hashes?view=graph-rest-1.0
  4. pCloud Developers — checksumfile: https://docs.pcloud.com/methods/file/checksumfile.html
  5. pCloud Developers — API regions and methods: https://docs.pcloud.com/
  6. Apple Support / iCloud Drive documentation reviewed for consumer file-sync and download behaviour; no comparable public consumer checksum field was verified in the documentation checked for this article.