From 7449b4593622eb0a3fac77c19dcc7c58320c6297 Mon Sep 17 00:00:00 2001 From: Alan Edwardes Date: Mon, 5 May 2014 23:23:34 +0100 Subject: [PATCH] The S3 object name is no longer generated twice, previously resulting in failed uploads where random characters were used. Amazon S3 object prefix option changed to "upload path" (consistent with Dropbox). Added help dropdown to upload path. --- UploadersLib/FileUploaders/AmazonS3.cs | 6 +++--- UploadersLib/GUI/UploadersConfigForm.Designer.cs | 5 ++--- UploadersLib/GUI/UploadersConfigForm.cs | 2 ++ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/UploadersLib/FileUploaders/AmazonS3.cs b/UploadersLib/FileUploaders/AmazonS3.cs index e0599481b..456560fc7 100644 --- a/UploadersLib/FileUploaders/AmazonS3.cs +++ b/UploadersLib/FileUploaders/AmazonS3.cs @@ -59,7 +59,7 @@ public S3PolicyCondition(string key, string value) } } - private string GetPolicyDocument(string fileName) + private string GetPolicyDocument(string fileName, string objectKey) { var policyDocument = new { @@ -68,7 +68,7 @@ private string GetPolicyDocument(string fileName) new S3PolicyCondition("acl", "public-read"), new S3PolicyCondition("bucket", S3Settings.Bucket), new S3PolicyCondition("Content-Type", Helpers.GetMimeType(fileName)), - new S3PolicyCondition("key", GetObjectKey(fileName)), + new S3PolicyCondition("key", objectKey), new S3PolicyCondition("x-amz-storage-class", GetObjectStorageClass()) } }; @@ -122,7 +122,7 @@ private string GetObjectURL(string objectName) private Dictionary GetParameters(string fileName, string objectKey) { - var policyDocument = GetPolicyDocument(fileName); + var policyDocument = GetPolicyDocument(fileName, objectKey); var policyBytes = Encoding.ASCII.GetBytes(policyDocument); var signature = CreateSignature(S3Settings.SecretAccessKey, policyBytes); diff --git a/UploadersLib/GUI/UploadersConfigForm.Designer.cs b/UploadersLib/GUI/UploadersConfigForm.Designer.cs index b460bf97f..b1f003bdd 100644 --- a/UploadersLib/GUI/UploadersConfigForm.Designer.cs +++ b/UploadersLib/GUI/UploadersConfigForm.Designer.cs @@ -1952,7 +1952,6 @@ private void InitializeComponent() this.txtAmazonS3ObjectPrefix.Name = "txtAmazonS3ObjectPrefix"; this.txtAmazonS3ObjectPrefix.Size = new System.Drawing.Size(348, 20); this.txtAmazonS3ObjectPrefix.TabIndex = 14; - this.ttHelpTip.SetToolTip(this.txtAmazonS3ObjectPrefix, "The name to prefix objects with when storing them."); this.txtAmazonS3ObjectPrefix.TextChanged += new System.EventHandler(this.txtAmazonS3ObjectPrefix_TextChanged); // // lblAmazonS3ObjectPrefix @@ -1960,9 +1959,9 @@ private void InitializeComponent() this.lblAmazonS3ObjectPrefix.AutoSize = true; this.lblAmazonS3ObjectPrefix.Location = new System.Drawing.Point(26, 135); this.lblAmazonS3ObjectPrefix.Name = "lblAmazonS3ObjectPrefix"; - this.lblAmazonS3ObjectPrefix.Size = new System.Drawing.Size(69, 13); + this.lblAmazonS3ObjectPrefix.Size = new System.Drawing.Size(68, 13); this.lblAmazonS3ObjectPrefix.TabIndex = 13; - this.lblAmazonS3ObjectPrefix.Text = "Object prefix:"; + this.lblAmazonS3ObjectPrefix.Text = "Upload path:"; // // cbAmazonS3UseRRS // diff --git a/UploadersLib/GUI/UploadersConfigForm.cs b/UploadersLib/GUI/UploadersConfigForm.cs index e037093f9..530dfedde 100644 --- a/UploadersLib/GUI/UploadersConfigForm.cs +++ b/UploadersLib/GUI/UploadersConfigForm.cs @@ -48,6 +48,8 @@ public UploadersConfigForm(UploadersConfig uploadersConfig) CreateUserControlEvents(); LoadSettings(uploadersConfig); Text = "ShareX - Outputs Configuration" + (string.IsNullOrEmpty(uploadersConfig.FilePath) ? string.Empty : " - " + uploadersConfig.FilePath); + + NameParser.CreateCodesMenu(this.txtAmazonS3ObjectPrefix, ReplacementVariables.n, ReplacementVariables.t, ReplacementVariables.pn); } private void UploadersConfigForm_FormClosed(object sender, FormClosedEventArgs e)