We are using RBS to store the SharePoint files outside the share point content database. This works nice with SP2010. but when we moved to SharePoint 2013 we found that the file has some extra data and added to the file in the RBS directory. Is there a way to ask the SharePoint not to add this extra binary data. As our users basically access the RBS through a read-only shared folder on the network and we have done a business that depends on that.
You're probably referring to shredded storage - in SP2010, there is a single FILESTREAM blob (.rbsblob) for each file version stored on an SP site (e.g. file is stored in the content database, but its content offloaded to RBS). In SP2013, shredded storage can shred a single file version into multiple smaller pieces and pads them with extra bytes, which means that you can't easily access a single file from the RBS itself - and you're not supposed to either! What that means is that when you upload a file "document.docx", you don't get a single blob, but multiple smaller blobs (depending on the size and settings) that can't easily be merged together - what you see in RBS are these multiple blobs. The best you can do is to prevent files from getting shreded, but it's a dirty way: How to disable Shredded Storage in SharePoint 2013? - however, this will only work for newly uploaded files and has impact on storage and performance (shredded storage enables you to e.g. store only deltas of a single document, say if you have 10 document versions that are 50% the same - these 50% will be shared across all versions as shared shreds instead of being stored multiple times as they would in SP2010).
One option that might be useful is to map a SharePoint site to a network drive and let users work with that instead of RBS directory directly - this way, files will get accessed via RBS without explicitly exposing the blobs (shreds) themselves.
Another option is to download/open a specific RBS-stored file by using SPFile.OpenBinary()
, which will merge the RBS-stored shreds and return a single (original) file that you can then store elsewhere (e.g. into another shared folder) - this way, you're duplicating files, but that's pretty much how it's supposed to be anyway. For example, this way you can open a file "document.docx" that is visible on an SP site, but stored in RBS as 5 .rbsblob shreds, and save it as "document.docx" elsewhere (outside of SP).