internal void WriteFormData(string boundary, Stream outputStream)
{
if (!String.IsNullOrEmpty(this.Key))
WriteFormDatum(outputStream, S3Constants.PostFormDataObjectKey, this.Key, boundary);
WriteFormDatum(outputStream, S3Constants.PostFormDataAcl, this.CannedACL, boundary);
if (this._isSetStorageClass)
WriteFormDatum(outputStream, HeaderKeys.XAmzStorageClassHeader, this.StorageClass, boundary);
if (this._isSetActionStatus)
WriteFormDatum(outputStream, S3Constants.PostFormDataStatus, ((Int32)this.SuccessActionStatus).ToString(CultureInfo.InvariantCulture), boundary);
if (!String.IsNullOrEmpty(this.SuccessActionRedirect))
WriteFormDatum(outputStream, S3Constants.PostFormDataRedirect, this.SuccessActionRedirect, boundary);
if (this.SignedPolicy != null && !string.IsNullOrEmpty(this.SignedPolicy.SecurityToken))
{
this.Metadata[S3Constants.PostFormDataSecurityToken] = this.SignedPolicy.SecurityToken;
}
foreach (var key in this.Headers.Keys)
{
if (!String.IsNullOrEmpty(this.Headers[key]))
WriteFormDatum(outputStream, key, this.Headers[key], boundary);
}
foreach (var kvp in this.Metadata)
{
var metakey = kvp.Key.StartsWith(S3Constants.PostFormDataXAmzPrefix, StringComparison.Ordinal) ? kvp.Key : S3Constants.PostFormDataMetaPrefix + kvp.Key;
WriteFormDatum(outputStream, metakey, kvp.Value, boundary);
}
if (this.SignedPolicy != null)
{
if (this.SignedPolicy.SignatureVersion == "2")
{
WriteFormDatum(outputStream, S3Constants.PostFormDataPolicy, this.SignedPolicy.Policy, boundary);
WriteFormDatum(outputStream, S3Constants.PostFormDataSignature, this.SignedPolicy.Signature, boundary);
WriteFormDatum(outputStream, S3Constants.PostFormDataAccessKeyId, this.SignedPolicy.AccessKeyId, boundary);
}
else
{
WriteFormDatum(outputStream, S3Constants.PostFormDataPolicy, this.SignedPolicy.Policy, boundary);
WriteFormDatum(outputStream, S3Constants.PostFormDataXAmzSignature, this.SignedPolicy.Signature, boundary);
WriteFormDatum(outputStream, S3Constants.PostFormDataXAmzAlgorithm, this.SignedPolicy.Algorithm, boundary);
WriteFormDatum(outputStream, S3Constants.PostFormDataXAmzCredential, this.SignedPolicy.Credential, boundary);
WriteFormDatum(outputStream, S3Constants.PostFormDataXAmzDate, this.SignedPolicy.Date, boundary);
}
}
}