Added URL preview to Azure Storage tab

This commit is contained in:
Jaex 2018-06-19 22:16:11 +03:00
parent 40f94579d4
commit 8667d2412e
5 changed files with 8853 additions and 2115 deletions

View file

@ -93,16 +93,8 @@ public override UploadResult Upload(Stream stream, string fileName)
}
string date = DateTime.UtcNow.ToString("R", CultureInfo.InvariantCulture);
string targetPath = GetUploadPath(fileName);
string url;
if (AzureStorageContainer == "$root")
{
url = $"https://{AzureStorageAccountName}.{AzureStorageEnvironment}/{targetPath}";
}
else
{
url = $"https://{AzureStorageAccountName}.{AzureStorageEnvironment}/{AzureStorageContainer}/{targetPath}";
}
string uploadPath = GetUploadPath(fileName);
string url = GenerateURL(uploadPath);
string contentType = Helpers.GetMimeType(fileName);
NameValueCollection requestHeaders = new NameValueCollection();
@ -114,11 +106,11 @@ public override UploadResult Upload(Stream stream, string fileName)
string canonicalizedResource;
if (AzureStorageContainer == "$root")
{
canonicalizedResource = $"/{AzureStorageAccountName}/{targetPath}";
canonicalizedResource = $"/{AzureStorageAccountName}/{uploadPath}";
}
else
{
canonicalizedResource = $"/{AzureStorageAccountName}/{AzureStorageContainer}/{targetPath}";
canonicalizedResource = $"/{AzureStorageAccountName}/{AzureStorageContainer}/{uploadPath}";
}
string stringToSign = GenerateStringToSign(canonicalizedHeaders, canonicalizedResource, stream.Length.ToString(), contentType);
@ -132,8 +124,7 @@ public override UploadResult Upload(Stream stream, string fileName)
if (!string.IsNullOrEmpty(AzureStorageCustomDomain))
{
result = URLHelpers.CombineURL(AzureStorageCustomDomain, targetPath);
result = URLHelpers.FixPrefix(result);
result = GenerateURL(uploadPath, AzureStorageCustomDomain);
}
else
{
@ -197,5 +188,32 @@ private string GetUploadPath(string fileName)
return fileName;
}
}
public string GenerateURL(string uploadPath, string customDomain = null)
{
string url;
if (!string.IsNullOrEmpty(customDomain))
{
url = URLHelpers.CombineURL(customDomain, uploadPath);
url = URLHelpers.FixPrefix(url);
}
else if (AzureStorageContainer == "$root")
{
url = $"https://{AzureStorageAccountName}.{AzureStorageEnvironment}/{uploadPath}";
}
else
{
url = $"https://{AzureStorageAccountName}.{AzureStorageEnvironment}/{AzureStorageContainer}/{uploadPath}";
}
return url;
}
public string GetPreviewURL()
{
string uploadPath = GetUploadPath("example.png");
return GenerateURL(uploadPath, AzureStorageCustomDomain);
}
}
}

View file

@ -650,6 +650,8 @@ private void InitializeComponent()
this.lblWidthHint = new System.Windows.Forms.Label();
this.ttlvMain = new ShareX.HelpersLib.TabToListView();
this.actRapidShareAccountType = new ShareX.UploadersLib.AccountTypeControl();
this.lblAzureStorageURLPreview = new System.Windows.Forms.Label();
this.lblAzureStorageURLPreviewLabel = new System.Windows.Forms.Label();
this.tpOtherUploaders.SuspendLayout();
this.tcOtherUploaders.SuspendLayout();
this.tpTwitter.SuspendLayout();
@ -2837,6 +2839,8 @@ private void InitializeComponent()
// tpAzureStorage
//
this.tpAzureStorage.BackColor = System.Drawing.SystemColors.Window;
this.tpAzureStorage.Controls.Add(this.lblAzureStorageURLPreview);
this.tpAzureStorage.Controls.Add(this.lblAzureStorageURLPreviewLabel);
this.tpAzureStorage.Controls.Add(this.txtAzureStorageUploadPath);
this.tpAzureStorage.Controls.Add(this.lblAzureStorageUploadPath);
this.tpAzureStorage.Controls.Add(this.cbAzureStorageEnvironment);
@ -5300,6 +5304,16 @@ private void InitializeComponent()
this.actRapidShareAccountType.Name = "actRapidShareAccountType";
this.actRapidShareAccountType.SelectedAccountType = ShareX.UploadersLib.AccountType.Anonymous;
//
// lblAzureStorageURLPreview
//
resources.ApplyResources(this.lblAzureStorageURLPreview, "lblAzureStorageURLPreview");
this.lblAzureStorageURLPreview.Name = "lblAzureStorageURLPreview";
//
// lblAzureStorageURLPreviewLabel
//
resources.ApplyResources(this.lblAzureStorageURLPreviewLabel, "lblAzureStorageURLPreviewLabel");
this.lblAzureStorageURLPreviewLabel.Name = "lblAzureStorageURLPreviewLabel";
//
// UploadersConfigForm
//
resources.ApplyResources(this, "$this");
@ -6100,5 +6114,7 @@ private void InitializeComponent()
private System.Windows.Forms.TextBox txtAzureStorageUploadPath;
private System.Windows.Forms.Label lblAzureStorageUploadPath;
private System.Windows.Forms.Label lblFirebaseDomain;
private System.Windows.Forms.Label lblAzureStorageURLPreview;
private System.Windows.Forms.Label lblAzureStorageURLPreviewLabel;
}
}

View file

@ -668,6 +668,7 @@ public void LoadSettings()
cbAzureStorageEnvironment.Text = Config.AzureStorageEnvironment;
txtAzureStorageCustomDomain.Text = Config.AzureStorageCustomDomain;
txtAzureStorageUploadPath.Text = Config.AzureStorageUploadPath;
UpdateAzureStorageStatus();
#endregion Azure Storage
@ -2849,6 +2850,12 @@ private void btnLithiioGetAPIKey_Click(object sender, EventArgs e)
private void txtAzureStorageAccountName_TextChanged(object sender, EventArgs e)
{
Config.AzureStorageAccountName = txtAzureStorageAccountName.Text;
UpdateAzureStorageStatus();
}
private void btnAzureStoragePortal_Click(object sender, EventArgs e)
{
URLHelpers.OpenURL("https://portal.azure.com/?feature.customportal=false#blade/HubsExtension/Resources/resourceType/Microsoft.Storage%2FStorageAccounts");
}
private void txtAzureStorageAccessKey_TextChanged(object sender, EventArgs e)
@ -2859,26 +2866,25 @@ private void txtAzureStorageAccessKey_TextChanged(object sender, EventArgs e)
private void txtAzureStorageContainer_TextChanged(object sender, EventArgs e)
{
Config.AzureStorageContainer = txtAzureStorageContainer.Text;
UpdateAzureStorageStatus();
}
private void cbAzureStorageEnvironment_SelectedIndexChanged(object sender, EventArgs e)
{
Config.AzureStorageEnvironment = cbAzureStorageEnvironment.Text;
}
private void txtAzureStorageCustomDomain_TextChanged(object sender, EventArgs e)
{
Config.AzureStorageCustomDomain = txtAzureStorageCustomDomain.Text;
UpdateAzureStorageStatus();
}
private void txtAzureStorageUploadPath_TextChanged(object sender, EventArgs e)
{
Config.AzureStorageUploadPath = txtAzureStorageUploadPath.Text;
UpdateAzureStorageStatus();
}
private void btnAzureStoragePortal_Click(object sender, EventArgs e)
private void txtAzureStorageCustomDomain_TextChanged(object sender, EventArgs e)
{
URLHelpers.OpenURL("https://portal.azure.com/?feature.customportal=false#blade/HubsExtension/Resources/resourceType/Microsoft.Storage%2FStorageAccounts");
Config.AzureStorageCustomDomain = txtAzureStorageCustomDomain.Text;
UpdateAzureStorageStatus();
}
#endregion Azure Storage

File diff suppressed because it is too large Load diff

View file

@ -245,7 +245,9 @@ public void GooglePhotosRefreshAlbumList()
private void UpdateAmazonS3Status()
{
lblAmazonS3PathPreview.Text = new AmazonS3(Config.AmazonS3Settings).GetPreviewURL();
AmazonS3 s3 = new AmazonS3(Config.AmazonS3Settings);
lblAmazonS3PathPreview.Text = s3.GetPreviewURL();
}
#endregion Amazon S3
@ -254,18 +256,30 @@ private void UpdateAmazonS3Status()
private void UpdateGoogleCloudStorageStatus()
{
GoogleCloudStorage GCS = new GoogleCloudStorage(Config.GoogleCloudStorageOAuth2Info)
GoogleCloudStorage gcs = new GoogleCloudStorage(Config.GoogleCloudStorageOAuth2Info)
{
Bucket = Config.GoogleCloudStorageBucket,
Domain = Config.GoogleCloudStorageDomain,
Prefix = Config.GoogleCloudStorageObjectPrefix
};
lblGoogleCloudStoragePathPreview.Text = GCS.GetPreviewURL();
lblGoogleCloudStoragePathPreview.Text = gcs.GetPreviewURL();
}
#endregion Google Cloud Storage
#region Azure Storage
private void UpdateAzureStorageStatus()
{
AzureStorage azure = new AzureStorage(Config.AzureStorageAccountName, Config.AzureStorageAccountAccessKey, Config.AzureStorageContainer,
Config.AzureStorageEnvironment, Config.AzureStorageCustomDomain, Config.AzureStorageUploadPath);
lblAzureStorageURLPreview.Text = azure.GetPreviewURL();
}
#endregion Azure Storage
#region Google Drive
private void GoogleDriveRefreshFolders()