title: How to use gcs-resumable-upload with signed url
body: <p>I want to be able to do resumable uploads to Google Cloud Storage in a node.js client application using the <a href="https://www.npmjs.com/package/gcs-resumable-upload" rel="nofollow noreferrer">gcs-resumable-upload</a> package, in conjunction with <a href="https://cloud.google.com/storage/docs/access-control/signed-urls" rel="nofollow noreferrer">signed urls</a> (since the client app is invoked by unauthenticated users).</p>
  
  <p>My server generates a signed url by calling <a href="https://cloud.google.com/nodejs/docs/reference/storage/2.3.x/File#getSignedUrl" rel="nofollow noreferrer">getSignedUrl</a> with <code>{action: 'resumable'}</code>. The server then sends a POST to the signed url with header <code>{ 'x-goog-resumable': 'start' }</code> and an empty body, and receives a response with a <code>location</code> header that looks something like the following:</p>
  
  <pre><code>https://storage.googleapis.com/&lt;bucket_name/&lt;file_path&gt;?GoogleAccessId=&lt;service_account&gt;&amp;Expires=&lt;expiry_time&gt;&amp;Signature=&lt;signature&gt;&amp;upload_id=&lt;upload_id&gt;
  </code></pre>
  
  <p>My question is: If I return the above <code>location</code> header to my client, can the client use it to perform a resumable upload using <a href="https://www.npmjs.com/package/gcs-resumable-upload" rel="nofollow noreferrer">gcs-resumable-upload</a>, and if so, how exactly? If anyone has an example, that would be greatly appreciated!</p>