Upwork logo

Google Cloud Storage Migration Engineer for Design Asset Library

Upwork

We are a consumer products company with a catalog of finished good SKUs. Each SKU has a set of design assets, including:

Product renderings

Unit carton renderings

Label layout flats in PDF

Unit carton flats in PDF

Product photography

Today, these assets live on an unstructured on-prem art server organized by brand. We want to migrate the primary finished deliverables into Google Cloud Storage using a clean, predictable structure, and retire the art server as the source of truth for finished assets.

We do not have prior GCP experience, so we are looking for someone who can lead and execute this work end to end, not just advise.

Scope of work

We need help with three things

Set up a Google Cloud project correctly

IAM

service accounts

bucket setup

versioning

encryption

public access prevention

cost alerts

Validate, refine, and run our migration script

We already have a working Python draft using google-cloud-storage

It walks the art server, selects the primary file for each asset type, creates a dry-run CSV manifest, and uploads files

It also includes incremental rerun logic using SHA-256 comparison against object metadata

We do not want a full rewrite unless clearly necessary

Create handoff documentation

A short runbook for rerunning the migration for new and updated files

A short plain-English guide for the team on how to use the bucket

Target structure

Our proposed Google Cloud Storage structure is

sku/1102318/1102318_rendering.png

sku/1102318/1102318_uc-render.png

sku/1102318/1102318_lbl-flat.pdf

sku/1102318/1102318_uc-flat.pdf

sku/1102318/1102318_photo.jpg

One primary file per asset type per SKU. No versions, source files, or derivatives.

What we already have

We will share the following at kickoff

Proposed target bucket structure

Working Python migration script, about 375 lines

Screenshots of the current art server layout

Structure and mapping design notes for legacy folder conventions

A beginner-level guide we wrote for internal context

For development and testing, we will pre-stage a representative sample tree in Google Drive. For the final migration run, we will either arrange VPN access or run the script ourselves under your guidance.

Known issues we need help validating

Photo source path is unconfirmed

Our script currently searches the brand/03. IMAGES/ area recursively for JPG files starting with the SKU, and flags any SKU with more than 3 matches for manual review. We need this validated against a real sample. Photo assets are lower priority than the other four asset types.

Legacy filename date format needs validation

Legacy LBL and UC filenames use MMDDYY format. . We convert this to YYYYMMDD and currently assume 20YY. Any dates before 2000 may be wrong and need a sanity check.

Loose files need a rule

We sometimes see loose files such as 1103074.jpg in the same folder as the main rendering. Their provenance is unclear. We need a rule for whether to include or exclude them.

Archived folders should be skipped

_closet folders appear to be legacy or archived content. We want these skipped entirely and need that confirmed.

Channel folders and size variants should not migrate

Folders such as 01. ecommerce, 02. sales, and 03. wordpress, plus size-variant files such as _200x200.png, should not migrate. We want confirmation that the script is excluding them cleanly.

Brand-code vocabulary needs to be finalized

Brand folders are suffixed with 2 to 4 letter codes such as PTT, LXB, and MPC. We need that vocabulary finalized and included in the handoff.

Incremental rerun logic needs end-to-end validation

The script compares local SHA-256 values to existing object metadata so only new or changed files upload. We want that validated end to end.

Deliverables

Configured and tested GCS bucket in our Google Cloud project

IAM and service account setup following least privilege

Refined migration script with fixes identified during validation

Completed migration run with CSV manifest showing migrated files and exceptions

Spot-check report for 20 random SKUs, confirmed end to end

Runbook, about 2 to 3 pages, covering

how to rerun the migration for new and updated files

how to grant access to a new teammate

how to check costs

Credentials must be handed to us securely through our password manager, never by email.

Ideal candidate

3+ years of hands-on experience with Google Cloud Storage and IAM

Strong Python experience, especially with google-cloud-storage

Experience migrating data from on-prem file shares to cloud storage

Bonus if you have worked with design or creative asset libraries

Comfortable working with non-technical stakeholders and writing clear documentation

To apply

Please include

A rough estimate of total hours or fixed price for the scope above

One question you would want answered on the kickoff call before quoting confidently

A link or short description of a similar migration you have done

Proposals that do not address all three may be deprioritized.

Budget: Open. Please quote what you think is fair for the scope. We would rather pay for it done right than redo it later.

Job Type

Job Type
Contract
Location
Anywhere(Remote)

Share this job: