mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 17:56:51 +13:00
Added URL preview to Azure Storage tab
This commit is contained in:
parent
40f94579d4
commit
8667d2412e
5 changed files with 8853 additions and 2115 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
@ -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()
|
||||
|
|
Loading…
Reference in a new issue