Now, I have never used the CorrugatedIron API, but it looks odd that you're using an UTF8 encoding. I'd be afraid that it UTF8 encodes the image data. The example OJ refers to passes null for that parameter, which looks more reasonable.
Kresten Den 14/03/2013 kl. 23.30 skrev "Kevin Burton" <[email protected]<mailto:[email protected]>>: I know that if I specify an incorrect content type such as application/json for the binary data then I get close to 6MB back so there is some interpretation. From: Kevin Burton [mailto:[email protected]] Sent: Thursday, March 14, 2013 5:16 PM To: 'Jeremiah Peschka' Cc: 'riak-users' Subject: RE: Binary data Good. Is this the correct way to do it? Basically it is a modification of the program that I have been using for the JSON data. Here is the modified code: string fileName = "..\\..\\test.jpg"; string bucket = "images"; byte[] buffer = File.ReadAllBytes(fileName); Debug.WriteLine("number of bytes read: " + buffer.Length); IRiakEndPoint cluster = RiakCluster.FromConfig("riakConfig"); IRiakClient riakClient = cluster.CreateClient(); RiakResult pingResult = riakClient.Ping(); if (pingResult.IsSuccess) { RiakObject value = new RiakObject(bucket, "1.jpg", buffer, RiakConstants.ContentTypes.ImageJpg, RiakConstants.CharSets.Utf8); RiakResult<RiakObject> response = riakClient.Put(value); if (!response.IsSuccess) { Debug.WriteLine(string.Format("Error ('{0}' - {1}: Writing {2}", response.ErrorMessage, response.ResultCode, "1.jpg")); } } } From: Jeremiah Peschka [mailto:[email protected]] Sent: Thursday, March 14, 2013 4:57 PM To: Kevin Burton Cc: riak-users Subject: Re: Binary data How are you reading the JPEG and saving it to Riak? A code sample would be lovely. CorrugatedIron doesn't need a `--data-binary` option. All operations are performed over the protocol buffers interface (barring several bucket properties operations) - we don't alter any data that comes in to CI, we just send and receive bytes on a socket. Much like curl, though, if you send in junk data, CI is happily going to return that junk data back to you. --- Jeremiah Peschka - Founder, Brent Ozar Unlimited MCITP: SQL Server 2008, MVP Cloudera Certified Developer for Apache Hadoop On Thu, Mar 14, 2013 at 2:12 PM, Kevin Burton <[email protected]<mailto:[email protected]>> wrote: I read on the FAQ how to get the same number of bytes as was stored: When storing a non-text object like a PNG file in Riak and then retrieving it with curl, it comes back a different size. For Example: curl -i -X PUT --data @g005.PNG_L -H "Content-Type: image/png" http://sfdev02:8098/luwak/g005.PNG_L Curl will try to convert non-ASCII characters in PUT and POST bodies. Use the --data-binary flag to turn this off: curl -i -X PUT --data-binary @g005.PNG_L -H "Content-Type: image/png" http://sfdev02:8098/luwak/g005.PNG_L Is there an option like ‘—data-binary’ for CorrugatedIron? I am ‘put’ing what should be binary data but if I retrieve the data with curl I get a different size and if the binary data is a jpeg image it comes back as corrupted? _______________________________________________ riak-users mailing list [email protected]<mailto:[email protected]> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com _______________________________________________ riak-users mailing list [email protected]<mailto:[email protected]> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com _______________________________________________ riak-users mailing list [email protected] http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
