public static S3PostUploadSignedPolicy GetSignedPolicyFromJson(string policyJson)
{
JsonData json;
try { json = JsonMapper.ToObject(policyJson); }
catch (Exception e)
{
throw new ArgumentException("Invalid JSON document", e);
}
if (null == json[KEY_POLICY] || !json[KEY_POLICY].IsString)
throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, "JSON document requires '{0}' field"), KEY_POLICY);
if (null == json[KEY_SIGNATURE] || !json[KEY_SIGNATURE].IsString)
throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, "JSON document requires '{0}' field"), KEY_SIGNATURE);
if (null == json[KEY_ACCESSKEY] || !json[KEY_ACCESSKEY].IsString)
throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, "JSON document requires '{0}' field"), KEY_ACCESSKEY);
return new S3PostUploadSignedPolicy
{
Policy = json[KEY_POLICY].ToString(),
Signature = json[KEY_SIGNATURE].ToString(),
AccessKeyId = json[KEY_ACCESSKEY].ToString()
};
}