If your content isn't stored in the cloud and is instead stored in a location that is not accessible via the internet then you can upload your content to SHIFT's S3 buckets where it can then be ingested into SHIFT.
This requires 2 calls before this method id called. See the documentation guide for this here: Uploading Content From Your Local Storage. The API documentation for Upload can be found here: Create Upload Ticket method for details
You will need a project id to create an asset. Use the Get all projects endpoint to find the one you'd like to add the asset to.