If you had everything working other than that JSON + CORS issue (i.e. 
signing a URL on the server and doing a PUT for the resumable upload) then 
all you need to do to make it work should be to pass the origin header from 
the client in that initial signing request.

As a general principle, I'd try and avoid the "thrashing" approach of 
changing the whole system instead of solving the last problem. Don't get me 
wrong, something an approach is just "wrong" and it's better not to invest 
any more time on it but I've found jumping about between solutions does 
burn a lot of time - it's easy to end up re-implementing sections that were 
otherwise "done" rather than building on the previous effort (and learning).

I can't remember if you posted what language you're using, if it's Go then 
I probably have some example code that will help. I might have some Python 
too but not 100% sure.


On Wednesday, 1 March 2017 13:28:08 UTC-7, Richard Cheesmar wrote:
>
> Simon and Adam,  I deleted my initial reply, kinda got tetchy. Yes, you 
> are correct I did get rapid responses, this forum has improved dramatically 
> over time. I also accept that i did get pretty tetchy, however, I'm going 
> to write that off as tech stress.
>
> I am sure that Google support staff are all trying their hardest, but the 
> docs and lack of concrete examples exasperate problems and one doesn't 
> always have the time to spend hours on stackoverflow day after day. Given 
> that,  I concur that not being as familiar as one would like with all the 
> different aspects of Googles Cloud offerings and apis, which are numerous 
> to say the least, is a drawback when it comes to getting things done in 
> certain time frames. Hence my request for more recipe examples. It's so 
> much easier to understand how things work with coded examples. Yes you can 
> find them here and there but invariably they're not what your looking for 
> or incomplete etc. etc.
>
> Anyway, I have since changed the code to use the XML API - still doing the 
> POST request from the server as the docs indicate that doing this and then 
> passing the location to the client negates the requirement for a signed url 
> on as the location in the POST is thus signed anyway. This works in as much 
> as the preflight OPTIONS request and the POST request both return 200. 
> However, the latter, for some reason, still returns an error -
>
> CORS header ‘Access-Control-Allow-Origin’ missing
>
> So that is not working. My next step is to sign a POST request on the 
> server pass it to the client and send it from there. That will have to wait 
> until the morning, it's late and the wine and zanax are calling me.
>
>
> On Monday, February 20, 2017 at 6:47:26 PM UTC+3, Richard Cheesmar wrote:
>>
>> I am using the standard python app engine environment and currently 
>> looking at how one goes about uploading multiple large media files to 
>> Google Cloud Storage (Public Readable) using App Engine or the Client 
>> directly (preferred).
>>
>> I currently send a bunch of smaller images (max 20 - between 30 and 100k 
>> on average), at the same time directly via a POST to the server. These 
>> images are provided by the client and put in my projects default bucket. I 
>> handle the requests images using a separate thread and write them one at a 
>> time to the cloud and then associate them with an ndb object. This is all 
>> fine and dandy when the images are small and do not cause the request to 
>> run out of memory or invoke a DeadlineExceededError. 
>>
>> But what is the best approach for large image files of 20mb+ a piece or 
>> video files of up to 1GB in size? Are there efficient ways to do this from 
>> the client directly, would this be possible via the Json api ,a resumable 
>> upload, for example? If so, are there any clear examples of how to do this 
>> purely in javascript on the client? I have looked at the docs but it's not 
>> intuitively obvious at least to me.
>>
>> I have been looking at the possibilities for a day or two but nothing 
>> hits you with a clear linear description or approach. I notice in the 
>> Google Docs there is a way using PHP to upload via a POST direct from the 
>> client...
>> https://cloud.google.com/appengine/docs/php/googlestorage/user_upload...Is 
>> this just relevant to using PHP on app engine or is there an equivalent to 
>> createUploadUrl 
>> for python or javascript?
>>
>>
>> Anyway, I'll keep exploring but any pointers would be greatly appreciated.
>>
>>
>> Cheers
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/f546148d-73dc-42b2-8f66-7f5c85a690ff%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to