You should save uploaded images in a Cloud Storage bucket, and monitor the bucket for uploads. Run a Cloud Function to convert the images and to store them in a Cloud Storage bucket. -> Correct. Cloud Storage is optimized for storing large binary objects like images, and Cloud Functions can be triggered by new uploads to perform the image conversion. This approach is efficient and cost-effective, as you only pay for the storage and the compute resources you actually use.
You should store uploaded images in Cloud Bigtable, monitor Bigtable entries, and then run a Cloud Function to convert the images and store them in Bigtable. -> Incorrect. Bigtable is designed for high-throughput, scalable NoSQL storage, not for storing large binary objects like images. The costs might also be higher compared to a solution that uses Cloud Storage for this particular use case.
You should store uploaded images in Firestore, monitor Firestore entries, and then run a Cloud Function to convert the images and store them in Firestore. -> Incorrect. Firestore is a document database that is more suited for structured data. It is not optimized for storing large binary objects like images, and costs can also be higher than a Cloud Storage-based solution.
You should store uploaded images in Filestore, monitor Filestore entries, and then run a Cloud Function to convert the images and store them in Filestore. -> Incorrect. Filestore is a managed NFS service, and while it can handle storing files, it's not optimized for object storage. It's also generally more expensive and less suitable for this type of workload than Cloud Storage.
https://cloud.google.com/functions/docs/calling/storage