I am trying to upload an image / file to Google Cloud Storage from a GAE application using the new Gcs client library.
Here is a snippet of code
GcsService gcsService = GcsServiceFactory.createGcsService(new RetryParams.Builder() .initialRetryDelayMillis(10) .retryMaxAttempts(10) .totalRetryPeriodMillis(15000) .build()); GcsFilename filename = new GcsFilename(BUCKETNAME, FILENAME); GcsFileOptions options = new GcsFileOptions.Builder().mimeType("text/html").acl("public-read").build(); GcsOutputChannel writeChannel = gcsService.createOrReplace(filename,options); PrintWriter out = new PrintWriter(Channels.newWriter(writeChannel, "UTF8")); out.println("The woods are lovely dark and deep."); out.println("But I have promises to keep."); out.flush(); writeChannel.waitForOutstandingWrites(); writeChannel.write(ByteBuffer.wrap("And miles to go before I sleep.".getBytes())); writeChannel.close();
When I look in the logs I get a 403 error like this
Server replied with 403, check that ACLs are set correctly on the object and bucket: Request: POST https://storage.googleapis.com/<bucket name>/<object name> x-goog-resumable: start x-goog-api-version: 2 Content-Type: text/html x-goog-acl: public-read no content Response: 403 with 152 bytes of content Content-Type: application/xml; charset=UTF-8 Content-Length: 152 Date: Tue, 02 Jul 2013 14:10:02 GMT Server: HTTP Upload Server Built on Jun 28 2013 13:27:54 (1372451274) X-Google-Cache-Control: remote-fetch Via: HTTP/1.1 GWA <?xml version='1.0' encoding='UTF-8'?><Error><Code>AccessDenied</Code><Message>Access denied.</Message><Details>images2.solestruck.com</Details></Error>
Can someone help me with this.
source share