Hi Johannes,
That makes sense. What you can do is expose a page on your site that collects opensocial ids and returns single-use upload "token" values. So you application flow becomes something like:
1.) Application loads and does a signed makeRequest to this page
2.) Your server verifies the ID and returns a random one time use token, something like a random GUID. It stores this token in a database, along with the opensocial user id.
3.) The application gets this value as a response and writes it as a hidden field in the upload form.
4.) When the user uploads the file, they POST the file contents back to your server, along with the token in the hidden field.
5.) Your server looks up the token and assigns the corresponding opensocial ID to the uploaded file. Then it deletes the token from the database so that it cannot be used again.
Hope this helps,
~Arne