How do I share media between items?

After reading the documentation, I think I have an idea of how this might work.

I don’t think I can upload the media and link it to a product. Instead, I can upload my STL in the process of creating an object called “Model-3D”. Upload - Strapi Developer DocsThen I make a “Product” item. Following the GraphQL example I can send a put request that will assign the Model-3d item to the Product item, calling the Product item as the target of the API and passing in the Model-3d id. That example is here: GraphQL API - Strapi Developer Docs]

Or, I can create the Model-3d object with attached binary, and then while creating the Product assign the Model-3D Id as a relation by passing in the Model-3D id.

Or am I over-complicating things? Can I upload media first, and assign the media’s ID to the product, even though the media is orphaned and not assigned to an item in a collection?

Just to circle back, my goal is to assign one media object to multiple Products, so I cannot upload the media while creating the product, because I don’t want a duplicate media for all the products.