There is only one API for uploading image data (description), and it doesn’t seem to allow uploading in pieces:
curl -i -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/octet-stream" \
-d @yoursourcefile.qcow2 $image_url/v2/images/{image_id}/file
You don’t describe your setup. How is your cloud configured; is it an all-in-one server? What storage backend do you use for Glance? From where do you upload the image? If you currently do everything on the same server that just has 1GB of cache, perhaps you gain something by keeping the source file and running the openstack CLI command on a separate PC.
Or you could stream the source file from somewhere else:
<program generating image data slowly> | curl -X PUT -H ... -d @- $image-url...
(that’s dash d at dash; I haven’t tried this)
Or you could ease the stress on the cache by throttling the network interface you use for uploading.
Of course, 1GB is woefully small, but it seems to me that there is a lot of experimentation you could do.