When I try to upload an object larger than 1 MB it fails with "Inline data
exceeds the maximum allowed size"
System.Web.Services.Protocols.SoapException: Inline data exceeds the maximum
tMessage message, WebResponse response, Stream responseStream, Boolean
methodName, Object parameters)
at com.amazonaws.s3.AmazonS3.PutObjectInline(String Bucket, String Key,
MetadataEntry] Metadata, Byte[ Data, Int64 ContentLength, Grant
AccessControlList, StorageClass StorageClass, Boolean StorageClassSpecified,
String AWSAccessKeyId, DateTime Timestamp, Boolean TimestampSpecified, String
Signature, String Credential)
It looks like this is a limit of the SOAP API to S3: https://forums.aws.amazo
Someone will have to change the call to PutObjectInline to PutObject, and
include the file as an attachment, rather than as a part of the request.
After looking into it a little bit more, I don't think it's possible to use
the SOAP API to do a PutObject directly. Amazon provides an SDK for .Net which
can do this (specific documentation on PutObject here: http://docs.amazonwebs
ervices.com/AmazonS3/latest/dev/index.html?UploadObjSingleOpNET.html). In a pinch just the one upload function could be rewritten to use
this, but long-term the SOAP APIs should probably be abandoned for Amazon's
Now someone just needs to step up and do the work ;-)
In the meantime, you may check that you have compression enabled, and you
could empty the recycle bin in your database, if it's not empty. I think that
keepasssync depends on the recycle bin not being empty to sync properly
(remove entries), so you may want to ensure that all clients are synced before
emptying that out.
I have updated KeePassSync to support S3 with databases larger than 1MB, available here: https://github.com/ctd1500/KeePassSync
I don't know that I will re-write it to support all of the Amazon SDK, but larger databases sync properly now.