611 karma · joined May 13, 2013
We've got some additional documentation on the differences and limitations between Gcsfuse and a proper POSIX filesystem: https://cloud.google.com/storage/docs/gcs-fuse#expandable-1
Gcsfuse is a great way to mount Cloud Storage buckets and view them like they're in a filesystem. It scales quite well for all sorts of uses. However, Cloud Storage itself is a flat namespace with no built-in directory support. Listing the few top level directories of a bucket with 100MM files more or less requires scanning over your entire list of objects, which means it's not going to be very fast. Listing objects in a leaf directory will be much faster, though.
Also I don't know much about WebGL and am quite curious how this works. Are they compiling these shaders locally in the browser?
If your leadership declines to take you up on this, escalate. If that fails, you must choose between continuing to do the repetitive operational work as instructed or leaving.
You can compose a 4TB object with a 1 byte object, or you can compose 32 150GB objects, just so long as the destination object doesn't go over 5 terabytes.
In addition, caching only applies to objects that are anonymously readable. Private objects are never cached.
These sorts of small, general, large scale cleanup commits are quite common at Google, and they're encouraged. They help keep the codebase healthy. There are special groups that review them so that all of the individual teams affected don't have to bother, and there are tools to manage the additional testing and approval requirements for such a change.
At my previous company, making such a change would have been a major undertaking. I never would have considered a refactor of that scale without a critical need. They had thousands of packages, each of which had its own repository and an incredibly complex web of build and runtime dependencies. It was a nightmare, and fiddling to find a working sets of versions of internal dependencies took up way, way too much of my time each day.
The trick to making the whole thing work is that you need to have confidence that, once something is on the list, it will get done. That's what allows you to stop fretting about the stuff on the list. But to get that confidence, you need to regularly do the stuff on the list.
Google has an example app (https://github.com/GoogleCloudPlatform/kubernetes-bigquery-p...) that demonstrates getting Pub/Sub data into BigQuery, but it just does it directly as a little Kubernetes job rather than using Dataflow. I like your more serverless solution.
In addition, the $300 is only for expenses in excess of the "Always Free" usage limits, which covers quite a bit of stuff, including 5 gigs of cloud storage, 1 micro compute engine instance, and a terabyte of BigQuery queries per month.
(disclaimer: I work at Google)
I would encourage OP to ask their recruiter about them, if they think it'd be helpful.
That game's protagonist, perhaps not coincidentally, burns out on their office job and decides to go become a farmer.
(I work on Google Cloud Storage)
Disclaimer: I work for Google but am definitely not a lawyer and can't authoritatively speak for Google here.
As another option, you can continue using the XML API and switch out only the auth piece to Google's OAuth system while changing nothing else.
There's a lot more detail available at: https://cloud.google.com/storage/docs/migrating
Disclaimer: I work on Google Cloud Storage.
If you're interested: https://cloud.google.com/solutions/web-serving-overview#host... https://cloud.google.com/compute/docs/load-balancing/http/us...
Disclaimer: I work on Google Cloud Storage.
If you visit just "https://noto-website.storage.googleapis.com/", that's a request to list all of the objects in the bucket, so you'll see an XML document with that namespace and the results of a listing.
If you were trying to download a specific object from that bucket, you'd either see the resource itself, or you'd see an XML error result of some sort (404, 403, etc). So I assume that either you mistyped the object name once or else the object had been deleted for some reason.
This particular API, the "XML" API, is designed to be API-compatible with S3. The XML namespace, 'http://doc.s3.amazonaws.com/2006-03-01', is therefore the same. This allows third party tools like 'boto' and the like which work with S3 to work with GCS with only a switch in hostname.