Hah, I should have looked at the code. Yeah, my example writes the thing to disk. Thanks for the catch, Stephen!
The GData protocol is open source, so you can probably poke around and figure out what it actually does with the File instance. If you look at this code here: http://www.google.com/codesearch#EOYaOg_yTgg/trunk/java/src/com/google/gdata/data/media/MediaFileSource.java&q=mediafilesource%20package:http://gdata-java-client%5C.googlecode%5C.com MediaFileSource has a getInputStream() method that just turns the File into an InputStream *anyway*. You can probably create your own subclass of BaseMediaSource that takes an InputStream and just directly return that. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Tue, Aug 23, 2011 at 2:42 PM, Stephen Johnson <[email protected]>wrote: > A File object isn't really the file, it's a reference to the file and you > can use it to get its associated metadata (permissions,size,etc.) The > example Ikai is referring to creates a new file on disk which isn't allowed > on AppEngine so this isn't going to work. Nicolo, perhaps you can create > your own multi-part http request and post it using the protocol instead of > the API using URLFetch. An example from the docs is shown below. Definitely > not as easy as the API. > > Stephen > www.cortexconnect.com > > > POST /feeds/content/domainName/siteName HTTP/1.1 > Host: sites.google.com > GData-Version: 1.4 > Authorization: <your authorization header here> > Content-Length: 7221984 > Content-Type: multipart/related; boundary=END_OF_PART > --END_OF_PART > Content-Type: application/atom+xml > <entry xmlns="http://www.w3.org/2005/Atom"> > <category scheme="http://schemas.google.com/g/2005#kind" > term="http://schemas.google.com/sites/2008#attachment" > label="attachment"/> > <link rel="http://schemas.google.com/sites/2008#parent" > type="application/atom+xml" > > href="https://sites.google.com/feeds/content/domainName/siteName/PARENT_ENTRY_ID"/> > <title>PDF File</title> > <summary>HR packet</summary> > </entry> > --END_OF_PART > Content-Type: application/pdf > > ... pdf contents here ... > > --END_OF_PART-- > > > On Tue, Aug 23, 2011 at 1:48 PM, Ikai Lan (Google) <[email protected]>wrote: > >> I just took a look at the GData library, and it shouldn't be that hard to >> convert an InputStream to a File instance. Here's something I found >> searching: >> >> http://www.roseindia.net/java/java-conversion/InputstreamToFile.shtml >> >> -- >> Ikai Lan >> Developer Programs Engineer, Google App Engine >> plus.ikailan.com | twitter.com/ikai >> >> >> >> On Sun, Aug 21, 2011 at 8:01 AM, Nicolò Brognoli < >> [email protected]> wrote: >> >>> Hello, >>> I want to upload an InputStream object onto Google sites. The sites API >>> manage only "File" objects, but I can't use the OuputStream to generate the >>> File from the InputStream. >>> >>> How can I upload the InputStream object to Google Sites? >>> Should I do that with a POST request? And if so, how can I create such >>> request? >>> >>> Thanks. >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Google App Engine for Java" group. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msg/google-appengine-java/-/xu1WcvMjvXMJ. >>> To post to this group, send email to >>> [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]. >>> For more options, visit this group at >>> http://groups.google.com/group/google-appengine-java?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google App Engine for Java" group. >> To post to this group, send email to >> [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/google-appengine-java?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine for Java" group. > To post to this group, send email to > [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
