Merge pull request #2229 from wi5nia/master

Azure Storage support
This commit is contained in:
Jaex 2017-01-27 17:32:35 +02:00 committed by GitHub
commit fdfd5f1460
12 changed files with 714 additions and 177 deletions

View file

@ -345,6 +345,12 @@ private HttpWebRequest PrepareWebRequest(HttpMethod method, string url, NameValu
headers.Remove("Accept");
}
if (headers["Content-Length"] != null)
{
request.ContentLength = Convert.ToInt32(headers["Content-Length"]);
headers.Remove("Content-Length");
}
request.Headers.Add(headers);
}

View file

@ -105,6 +105,8 @@ public enum FileDestination
Mega,
[Description("Amazon S3")]
AmazonS3,
[Description("Azure Storage")]
AzureStorage,
[Description("ownCloud")]
OwnCloud,
[Description("MediaFire")]

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View file

@ -0,0 +1,186 @@
using ShareX.UploadersLib.Properties;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Security.Cryptography;
using System.Text;
using System.Windows.Forms;
namespace ShareX.UploadersLib.FileUploaders
{
public sealed class AzureStorage : FileUploader
{
private string azureStorageAccountName;
private string azureStorageAccountAccessKey;
private string azureStorageContainer;
private const string apiVersion = "2016-05-31";
public AzureStorage(string asAccountName, string asAccessKey, string asContainer)
{
azureStorageAccountName = asAccountName;
azureStorageAccountAccessKey = asAccessKey;
azureStorageContainer = asContainer;
}
public override UploadResult Upload(Stream stream, string fileName)
{
if (string.IsNullOrEmpty(azureStorageAccountName)) { Errors.Add("'Account Name' must not be empty"); }
if (string.IsNullOrEmpty(azureStorageAccountAccessKey)) { Errors.Add("'Access key' must not be empty"); }
if (string.IsNullOrEmpty(azureStorageContainer)) { Errors.Add("'Container' must not be empty"); }
if (IsError)
{
return null;
}
CreateContainerIfNotExists();
var date = DateTime.UtcNow.ToString("R", CultureInfo.InvariantCulture);
var uri = string.Format("https://{0}.blob.core.windows.net/{1}/{2}", azureStorageAccountName, azureStorageContainer, fileName);
NameValueCollection requestHeaders = new NameValueCollection();
requestHeaders["x-ms-date"] = date;
requestHeaders["x-ms-version"] = apiVersion;
requestHeaders["x-ms-blob-type"] = "BlockBlob";
var canonicalizedHeaders = string.Format("x-ms-blob-type:BlockBlob\nx-ms-date:{0}\nx-ms-version:{1}\n", date, apiVersion);
var canonicalizedResource = string.Format("/{0}/{1}/{2}", azureStorageAccountName, azureStorageContainer, fileName);
var StringToSign = GenerateStringToSign(canonicalizedHeaders, canonicalizedResource, stream.Length.ToString());
requestHeaders["Authorization"] = string.Format("SharedKey {0}:{1}", azureStorageAccountName, HashRequest(StringToSign));
NameValueCollection responseHeaders = SendRequestGetHeaders(HttpMethod.PUT, uri, stream, null, null, requestHeaders, null);
if (responseHeaders != null)
{
return new UploadResult { IsSuccess = true, URL = uri };
}
else
{
Errors.Add("Upload failed.");
return null;
}
}
private void CreateContainerIfNotExists()
{
var date = DateTime.UtcNow.ToString("R", CultureInfo.InvariantCulture);
var uri = string.Format("https://{0}.blob.core.windows.net/{1}?restype=container", azureStorageAccountName, azureStorageContainer);
NameValueCollection requestHeaders = new NameValueCollection();
requestHeaders["Content-Length"] = "0";
requestHeaders["x-ms-date"] = date;
requestHeaders["x-ms-version"] = apiVersion;
var canonicalizedHeaders = string.Format("x-ms-date:{0}\nx-ms-version:{1}\n", date, apiVersion);
var canonicalizedResource = string.Format("/{0}/{1}\nrestype:container", azureStorageAccountName, azureStorageContainer);
var StringToSign = GenerateStringToSign(canonicalizedHeaders, canonicalizedResource);
requestHeaders["Authorization"] = string.Format("SharedKey {0}:{1}", azureStorageAccountName, HashRequest(StringToSign));
NameValueCollection responseHeaders = SendRequestGetHeaders(HttpMethod.PUT, uri, null, null, null, requestHeaders, null);
if (responseHeaders != null)
{
SetContainerACL();
}
else
{
if (Errors.Count != 0)
{
if (Errors[0].Contains("409"))
SetContainerACL();
else
{
Errors.Add("Upload to Azure storage failed.");
}
}
}
}
private void SetContainerACL()
{
var date = DateTime.UtcNow.ToString("R", CultureInfo.InvariantCulture);
var uri = string.Format("https://{0}.blob.core.windows.net/{1}?restype=container&comp=acl", azureStorageAccountName, azureStorageContainer);
NameValueCollection requestHeaders = new NameValueCollection();
requestHeaders["Content-Length"] = "0";
requestHeaders["x-ms-date"] = date;
requestHeaders["x-ms-version"] = apiVersion;
requestHeaders["x-ms-blob-public-access"] = "container";
var canonicalizedHeaders = string.Format("x-ms-blob-public-access:container\nx-ms-date:{0}\nx-ms-version:{1}\n", date, apiVersion);
var canonicalizedResource = string.Format("/{0}/{1}\ncomp:acl\nrestype:container", azureStorageAccountName, azureStorageContainer);
var StringToSign = GenerateStringToSign(canonicalizedHeaders, canonicalizedResource);
requestHeaders["Authorization"] = string.Format("SharedKey {0}:{1}", azureStorageAccountName, HashRequest(StringToSign));
NameValueCollection responseHeaders = SendRequestGetHeaders(HttpMethod.PUT, uri, null, null, null, requestHeaders, null);
if (responseHeaders == null)
Errors.Add("There was an issue with setting ACL on the container.");
}
private string HashRequest(string stringToSign)
{
string hashedString;
using (HashAlgorithm hashAlgorithm = new HMACSHA256(Convert.FromBase64String(azureStorageAccountAccessKey)))
{
byte[] messageBuffer = Encoding.UTF8.GetBytes(stringToSign);
hashedString = Convert.ToBase64String(hashAlgorithm.ComputeHash(messageBuffer));
}
return hashedString;
}
private string GenerateStringToSign(string canonicalizedHeaders, string canonicalizedResource, string contentLength = "")
{
var stringToSign = "PUT" + "\n" +
"\n" +
"\n" +
(string.IsNullOrEmpty(contentLength) ? string.Empty : contentLength) + "\n" +
"\n" +
"\n" +
"\n" +
"\n" +
"\n" +
"\n" +
"\n" +
"\n" +
canonicalizedHeaders +
canonicalizedResource;
return stringToSign;
}
}
public class AzureStorageUploaderService : FileUploaderService
{
public override FileDestination EnumValue { get; } = FileDestination.AzureStorage;
public override Image ServiceImage => Resources.AzureStorage;
public override bool CheckConfig(UploadersConfig config)
{
return !string.IsNullOrEmpty(config.AzureStorageAccountName) &&
!string.IsNullOrEmpty(config.AzureStorageAccountAccessKey) &&
!string.IsNullOrEmpty(config.AzureStorageContainer);
}
public override GenericUploader CreateUploader(UploadersConfig config, TaskReferenceHelper taskInfo)
{
return new AzureStorage(config.AzureStorageAccountName, config.AzureStorageAccountAccessKey, config.AzureStorageContainer);
}
public override TabPage GetUploadersConfigTabPage(UploadersConfigForm form) => form.tpAzureStorage;
}
}

View file

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ShareX.UploadersLib.FileUploaders
{
public class AzureStorageSettings
{
public string AccountName { get; set; }
public string AccessKey { get; set; }
public string Container { get; set; }
}
}

View file

@ -34,6 +34,8 @@ private void InitializeComponent()
this.ttHelpTip = new System.Windows.Forms.ToolTip(this.components);
this.cbAmazonS3UseRRS = new System.Windows.Forms.CheckBox();
this.cbAmazonS3CustomCNAME = new System.Windows.Forms.CheckBox();
this.mbCustomUploaderDestinationType = new ShareX.HelpersLib.MenuButton();
this.cmsCustomUploaderDestinationType = new System.Windows.Forms.ContextMenuStrip(this.components);
this.tpOtherUploaders = new System.Windows.Forms.TabPage();
this.tcOtherUploaders = new System.Windows.Forms.TabControl();
this.tpTwitter = new System.Windows.Forms.TabPage();
@ -42,6 +44,7 @@ private void InitializeComponent()
this.lblTwitterDefaultMessage = new System.Windows.Forms.Label();
this.txtTwitterDefaultMessage = new System.Windows.Forms.TextBox();
this.cbTwitterSkipMessageBox = new System.Windows.Forms.CheckBox();
this.oauthTwitter = new ShareX.UploadersLib.OAuthControl();
this.txtTwitterDescription = new System.Windows.Forms.TextBox();
this.lblTwitterDescription = new System.Windows.Forms.Label();
this.btnTwitterRemove = new System.Windows.Forms.Button();
@ -103,8 +106,6 @@ private void InitializeComponent()
this.lblCustomUploaderResponseType = new System.Windows.Forms.Label();
this.cbCustomUploaderURLShortener = new System.Windows.Forms.ComboBox();
this.gbCustomUploaders = new System.Windows.Forms.GroupBox();
this.mbCustomUploaderDestinationType = new ShareX.HelpersLib.MenuButton();
this.cmsCustomUploaderDestinationType = new System.Windows.Forms.ContextMenuStrip(this.components);
this.btnCustomUploadersExportAll = new System.Windows.Forms.Button();
this.btnCustomUploaderClearUploaders = new System.Windows.Forms.Button();
this.eiCustomUploaders = new ShareX.HelpersLib.ExportImportControl();
@ -136,7 +137,10 @@ private void InitializeComponent()
this.tpBitly = new System.Windows.Forms.TabPage();
this.txtBitlyDomain = new System.Windows.Forms.TextBox();
this.lblBitlyDomain = new System.Windows.Forms.Label();
this.oauth2Bitly = new ShareX.UploadersLib.OAuthControl();
this.tpGoogleURLShortener = new System.Windows.Forms.TabPage();
this.oauth2GoogleURLShortener = new ShareX.UploadersLib.OAuthControl();
this.atcGoogleURLShortenerAccountType = new ShareX.UploadersLib.AccountTypeControl();
this.tpYourls = new System.Windows.Forms.TabPage();
this.txtYourlsPassword = new System.Windows.Forms.TextBox();
this.txtYourlsUsername = new System.Windows.Forms.TextBox();
@ -174,7 +178,9 @@ private void InitializeComponent()
this.cboFtpImages = new System.Windows.Forms.ComboBox();
this.cboFtpFiles = new System.Windows.Forms.ComboBox();
this.cboFtpText = new System.Windows.Forms.ComboBox();
this.ucFTPAccounts = new ShareX.UploadersLib.AccountsControl();
this.tpDropbox = new System.Windows.Forms.TabPage();
this.oauth2Dropbox = new ShareX.UploadersLib.OAuthControl();
this.cbDropboxURLType = new System.Windows.Forms.ComboBox();
this.cbDropboxAutoCreateShareableLink = new System.Windows.Forms.CheckBox();
this.pbDropboxLogo = new System.Windows.Forms.PictureBox();
@ -186,6 +192,7 @@ private void InitializeComponent()
this.tvOneDrive = new System.Windows.Forms.TreeView();
this.lblOneDriveFolderID = new System.Windows.Forms.Label();
this.cbOneDriveCreateShareableLink = new System.Windows.Forms.CheckBox();
this.oAuth2OneDrive = new ShareX.UploadersLib.OAuthControl();
this.tpGoogleDrive = new System.Windows.Forms.TabPage();
this.cbGoogleDriveDirectLink = new System.Windows.Forms.CheckBox();
this.cbGoogleDriveUseFolder = new System.Windows.Forms.CheckBox();
@ -196,6 +203,7 @@ private void InitializeComponent()
this.chGoogleDriveDescription = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.btnGoogleDriveRefreshFolders = new System.Windows.Forms.Button();
this.cbGoogleDriveIsPublic = new System.Windows.Forms.CheckBox();
this.oauth2GoogleDrive = new ShareX.UploadersLib.OAuthControl();
this.tpPuush = new System.Windows.Forms.TabPage();
this.pbPuush = new System.Windows.Forms.PictureBox();
this.lblPuushAPIKey = new System.Windows.Forms.Label();
@ -214,6 +222,7 @@ private void InitializeComponent()
this.chBoxFoldersName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.lblBoxFolderID = new System.Windows.Forms.Label();
this.btnBoxRefreshFolders = new System.Windows.Forms.Button();
this.oauth2Box = new ShareX.UploadersLib.OAuthControl();
this.tpAmazonS3 = new System.Windows.Forms.TabPage();
this.txtAmazonS3CustomDomain = new System.Windows.Forms.TextBox();
this.lblAmazonS3PathPreviewLabel = new System.Windows.Forms.Label();
@ -230,6 +239,14 @@ private void InitializeComponent()
this.lblAmazonS3SecretKey = new System.Windows.Forms.Label();
this.lblAmazonS3AccessKey = new System.Windows.Forms.Label();
this.txtAmazonS3AccessKey = new System.Windows.Forms.TextBox();
this.tpAzureStorage = new System.Windows.Forms.TabPage();
this.btnAzureStoragePortal = new System.Windows.Forms.Button();
this.txtAzureStorageContainer = new System.Windows.Forms.TextBox();
this.lblAzureStorageContainer = new System.Windows.Forms.Label();
this.txtAzureStorageAccessKey = new System.Windows.Forms.TextBox();
this.lblAzureStorageAccessKey = new System.Windows.Forms.Label();
this.txtAzureStorageAccountName = new System.Windows.Forms.TextBox();
this.lblAzureStorageAccountName = new System.Windows.Forms.Label();
this.tpMega = new System.Windows.Forms.TabPage();
this.btnMegaRefreshFolders = new System.Windows.Forms.Button();
this.lblMegaStatus = new System.Windows.Forms.Label();
@ -275,6 +292,7 @@ private void InitializeComponent()
this.lblSendSpaceUsername = new System.Windows.Forms.Label();
this.txtSendSpacePassword = new System.Windows.Forms.TextBox();
this.txtSendSpaceUserName = new System.Windows.Forms.TextBox();
this.atcSendSpaceAccountType = new ShareX.UploadersLib.AccountTypeControl();
this.tpGe_tt = new System.Windows.Forms.TabPage();
this.lblGe_ttStatus = new System.Windows.Forms.Label();
this.lblGe_ttPassword = new System.Windows.Forms.Label();
@ -312,6 +330,7 @@ private void InitializeComponent()
this.txtJiraConfigHelp = new System.Windows.Forms.TextBox();
this.txtJiraHost = new System.Windows.Forms.TextBox();
this.lblJiraHost = new System.Windows.Forms.Label();
this.oAuthJira = new ShareX.UploadersLib.OAuthControl();
this.tpLambda = new System.Windows.Forms.TabPage();
this.lblLambdaInfo = new System.Windows.Forms.Label();
this.lblLambdaApiKey = new System.Windows.Forms.Label();
@ -400,6 +419,7 @@ private void InitializeComponent()
this.lblSharedFolderImages = new System.Windows.Forms.Label();
this.cboSharedFolderText = new System.Windows.Forms.ComboBox();
this.cboSharedFolderImages = new System.Windows.Forms.ComboBox();
this.ucLocalhostAccounts = new ShareX.UploadersLib.AccountsControl();
this.tpEmail = new System.Windows.Forms.TabPage();
this.txtEmailAutomaticSendTo = new System.Windows.Forms.TextBox();
this.cbEmailAutomaticSend = new System.Windows.Forms.CheckBox();
@ -442,6 +462,8 @@ private void InitializeComponent()
this.tpGist = new System.Windows.Forms.TabPage();
this.cbGistUseRawURL = new System.Windows.Forms.CheckBox();
this.cbGistPublishPublic = new System.Windows.Forms.CheckBox();
this.oAuth2Gist = new ShareX.UploadersLib.OAuthControl();
this.atcGistAccountType = new ShareX.UploadersLib.AccountTypeControl();
this.tpUpaste = new System.Windows.Forms.TabPage();
this.cbUpasteIsPublic = new System.Windows.Forms.CheckBox();
this.lblUpasteUserKey = new System.Windows.Forms.Label();
@ -466,6 +488,8 @@ private void InitializeComponent()
this.cbImgurUseGIFV = new System.Windows.Forms.CheckBox();
this.cbImgurUploadSelectedAlbum = new System.Windows.Forms.CheckBox();
this.cbImgurDirectLink = new System.Windows.Forms.CheckBox();
this.atcImgurAccountType = new ShareX.UploadersLib.AccountTypeControl();
this.oauth2Imgur = new ShareX.UploadersLib.OAuthControl();
this.lvImgurAlbumList = new System.Windows.Forms.ListView();
this.chImgurID = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.chImgurTitle = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
@ -483,6 +507,7 @@ private void InitializeComponent()
this.txtImageShackPassword = new System.Windows.Forms.TextBox();
this.lblImageShackPassword = new System.Windows.Forms.Label();
this.tpTinyPic = new System.Windows.Forms.TabPage();
this.atcTinyPicAccountType = new ShareX.UploadersLib.AccountTypeControl();
this.btnTinyPicLogin = new System.Windows.Forms.Button();
this.txtTinyPicPassword = new System.Windows.Forms.TextBox();
this.lblTinyPicPassword = new System.Windows.Forms.Label();
@ -523,6 +548,7 @@ private void InitializeComponent()
this.chPicasaName = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.chPicasaDescription = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.btnPicasaRefreshAlbumList = new System.Windows.Forms.Button();
this.oauth2Picasa = new ShareX.UploadersLib.OAuthControl();
this.tpChevereto = new System.Windows.Forms.TabPage();
this.btnCheveretoTestAll = new System.Windows.Forms.Button();
this.lblCheveretoUploadURLExample = new System.Windows.Forms.Label();
@ -545,24 +571,6 @@ private void InitializeComponent()
this.tcUploaders = new System.Windows.Forms.TabControl();
this.lblWidthHint = new System.Windows.Forms.Label();
this.ttlvMain = new ShareX.HelpersLib.TabToListView();
this.atcImgurAccountType = new ShareX.UploadersLib.AccountTypeControl();
this.oauth2Imgur = new ShareX.UploadersLib.OAuthControl();
this.atcTinyPicAccountType = new ShareX.UploadersLib.AccountTypeControl();
this.oauth2Picasa = new ShareX.UploadersLib.OAuthControl();
this.oAuth2Gist = new ShareX.UploadersLib.OAuthControl();
this.atcGistAccountType = new ShareX.UploadersLib.AccountTypeControl();
this.ucFTPAccounts = new ShareX.UploadersLib.AccountsControl();
this.oauth2Dropbox = new ShareX.UploadersLib.OAuthControl();
this.oAuth2OneDrive = new ShareX.UploadersLib.OAuthControl();
this.oauth2GoogleDrive = new ShareX.UploadersLib.OAuthControl();
this.oauth2Box = new ShareX.UploadersLib.OAuthControl();
this.atcSendSpaceAccountType = new ShareX.UploadersLib.AccountTypeControl();
this.oAuthJira = new ShareX.UploadersLib.OAuthControl();
this.oauthTwitter = new ShareX.UploadersLib.OAuthControl();
this.oauth2Bitly = new ShareX.UploadersLib.OAuthControl();
this.oauth2GoogleURLShortener = new ShareX.UploadersLib.OAuthControl();
this.atcGoogleURLShortenerAccountType = new ShareX.UploadersLib.AccountTypeControl();
this.ucLocalhostAccounts = new ShareX.UploadersLib.AccountsControl();
this.actRapidShareAccountType = new ShareX.UploadersLib.AccountTypeControl();
this.tpOtherUploaders.SuspendLayout();
this.tcOtherUploaders.SuspendLayout();
@ -595,6 +603,7 @@ private void InitializeComponent()
((System.ComponentModel.ISupportInitialize)(this.pbPuush)).BeginInit();
this.tpBox.SuspendLayout();
this.tpAmazonS3.SuspendLayout();
this.tpAzureStorage.SuspendLayout();
this.tpMega.SuspendLayout();
this.tpOwnCloud.SuspendLayout();
this.tpMediaFire.SuspendLayout();
@ -681,6 +690,20 @@ private void InitializeComponent()
this.cbAmazonS3CustomCNAME.UseVisualStyleBackColor = true;
this.cbAmazonS3CustomCNAME.CheckedChanged += new System.EventHandler(this.cbAmazonS3CustomCNAME_CheckedChanged);
//
// mbCustomUploaderDestinationType
//
resources.ApplyResources(this.mbCustomUploaderDestinationType, "mbCustomUploaderDestinationType");
this.mbCustomUploaderDestinationType.Menu = this.cmsCustomUploaderDestinationType;
this.mbCustomUploaderDestinationType.Name = "mbCustomUploaderDestinationType";
this.ttHelpTip.SetToolTip(this.mbCustomUploaderDestinationType, resources.GetString("mbCustomUploaderDestinationType.ToolTip"));
this.mbCustomUploaderDestinationType.UseVisualStyleBackColor = true;
//
// cmsCustomUploaderDestinationType
//
this.cmsCustomUploaderDestinationType.ImageScalingSize = new System.Drawing.Size(24, 24);
this.cmsCustomUploaderDestinationType.Name = "cmsCustomUploaderDestinationType";
resources.ApplyResources(this.cmsCustomUploaderDestinationType, "cmsCustomUploaderDestinationType");
//
// tpOtherUploaders
//
this.tpOtherUploaders.Controls.Add(this.tcOtherUploaders);
@ -744,6 +767,15 @@ private void InitializeComponent()
this.cbTwitterSkipMessageBox.UseVisualStyleBackColor = true;
this.cbTwitterSkipMessageBox.CheckedChanged += new System.EventHandler(this.cbTwitterSkipMessageBox_CheckedChanged);
//
// oauthTwitter
//
resources.ApplyResources(this.oauthTwitter, "oauthTwitter");
this.oauthTwitter.IsRefreshable = false;
this.oauthTwitter.Name = "oauthTwitter";
this.oauthTwitter.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauthTwitter_OpenButtonClicked);
this.oauthTwitter.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauthTwitter_CompleteButtonClicked);
this.oauthTwitter.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauthTwitter_ClearButtonClicked);
//
// txtTwitterDescription
//
resources.ApplyResources(this.txtTwitterDescription, "txtTwitterDescription");
@ -1227,19 +1259,6 @@ private void InitializeComponent()
this.gbCustomUploaders.Name = "gbCustomUploaders";
this.gbCustomUploaders.TabStop = false;
//
// mbCustomUploaderDestinationType
//
resources.ApplyResources(this.mbCustomUploaderDestinationType, "mbCustomUploaderDestinationType");
this.mbCustomUploaderDestinationType.Menu = this.cmsCustomUploaderDestinationType;
this.mbCustomUploaderDestinationType.Name = "mbCustomUploaderDestinationType";
this.ttHelpTip.SetToolTip(this.mbCustomUploaderDestinationType, resources.GetString("mbCustomUploaderDestinationType.ToolTip"));
this.mbCustomUploaderDestinationType.UseVisualStyleBackColor = true;
//
// cmsCustomUploaderDestinationType
//
this.cmsCustomUploaderDestinationType.Name = "cmsCustomUploaderDestinationType";
resources.ApplyResources(this.cmsCustomUploaderDestinationType, "cmsCustomUploaderDestinationType");
//
// btnCustomUploadersExportAll
//
resources.ApplyResources(this.btnCustomUploadersExportAll, "btnCustomUploadersExportAll");
@ -1444,6 +1463,15 @@ private void InitializeComponent()
resources.ApplyResources(this.lblBitlyDomain, "lblBitlyDomain");
this.lblBitlyDomain.Name = "lblBitlyDomain";
//
// oauth2Bitly
//
this.oauth2Bitly.IsRefreshable = false;
resources.ApplyResources(this.oauth2Bitly, "oauth2Bitly");
this.oauth2Bitly.Name = "oauth2Bitly";
this.oauth2Bitly.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2Bitly_OpenButtonClicked);
this.oauth2Bitly.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2Bitly_CompleteButtonClicked);
this.oauth2Bitly.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2Bitly_ClearButtonClicked);
//
// tpGoogleURLShortener
//
this.tpGoogleURLShortener.Controls.Add(this.oauth2GoogleURLShortener);
@ -1452,6 +1480,22 @@ private void InitializeComponent()
this.tpGoogleURLShortener.Name = "tpGoogleURLShortener";
this.tpGoogleURLShortener.UseVisualStyleBackColor = true;
//
// oauth2GoogleURLShortener
//
resources.ApplyResources(this.oauth2GoogleURLShortener, "oauth2GoogleURLShortener");
this.oauth2GoogleURLShortener.Name = "oauth2GoogleURLShortener";
this.oauth2GoogleURLShortener.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2GoogleURLShortener_OpenButtonClicked);
this.oauth2GoogleURLShortener.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2GoogleURLShortener_CompleteButtonClicked);
this.oauth2GoogleURLShortener.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2GoogleURLShortener_ClearButtonClicked);
this.oauth2GoogleURLShortener.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oauth2GoogleURLShortener_RefreshButtonClicked);
//
// atcGoogleURLShortenerAccountType
//
resources.ApplyResources(this.atcGoogleURLShortenerAccountType, "atcGoogleURLShortenerAccountType");
this.atcGoogleURLShortenerAccountType.Name = "atcGoogleURLShortenerAccountType";
this.atcGoogleURLShortenerAccountType.SelectedAccountType = ShareX.UploadersLib.AccountType.Anonymous;
this.atcGoogleURLShortenerAccountType.AccountTypeChanged += new ShareX.UploadersLib.AccountTypeControl.AccountTypeChangedEventHandler(this.atcGoogleURLShortenerAccountType_AccountTypeChanged);
//
// tpYourls
//
this.tpYourls.Controls.Add(this.txtYourlsPassword);
@ -1643,6 +1687,7 @@ private void InitializeComponent()
this.tcFileUploaders.Controls.Add(this.tpPuush);
this.tcFileUploaders.Controls.Add(this.tpBox);
this.tcFileUploaders.Controls.Add(this.tpAmazonS3);
this.tcFileUploaders.Controls.Add(this.tpAzureStorage);
this.tcFileUploaders.Controls.Add(this.tpMega);
this.tcFileUploaders.Controls.Add(this.tpOwnCloud);
this.tcFileUploaders.Controls.Add(this.tpMediaFire);
@ -1735,6 +1780,11 @@ private void InitializeComponent()
this.cboFtpText.Name = "cboFtpText";
this.cboFtpText.SelectedIndexChanged += new System.EventHandler(this.cboFtpText_SelectedIndexChanged);
//
// ucFTPAccounts
//
resources.ApplyResources(this.ucFTPAccounts, "ucFTPAccounts");
this.ucFTPAccounts.Name = "ucFTPAccounts";
//
// tpDropbox
//
this.tpDropbox.Controls.Add(this.oauth2Dropbox);
@ -1749,6 +1799,15 @@ private void InitializeComponent()
this.tpDropbox.Name = "tpDropbox";
this.tpDropbox.UseVisualStyleBackColor = true;
//
// oauth2Dropbox
//
this.oauth2Dropbox.IsRefreshable = false;
resources.ApplyResources(this.oauth2Dropbox, "oauth2Dropbox");
this.oauth2Dropbox.Name = "oauth2Dropbox";
this.oauth2Dropbox.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2Dropbox_OpenButtonClicked);
this.oauth2Dropbox.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2Dropbox_CompleteButtonClicked);
this.oauth2Dropbox.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2Dropbox_ClearButtonClicked);
//
// cbDropboxURLType
//
this.cbDropboxURLType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
@ -1822,6 +1881,15 @@ private void InitializeComponent()
this.cbOneDriveCreateShareableLink.UseVisualStyleBackColor = true;
this.cbOneDriveCreateShareableLink.CheckedChanged += new System.EventHandler(this.cbOneDriveCreateShareableLink_CheckedChanged);
//
// oAuth2OneDrive
//
resources.ApplyResources(this.oAuth2OneDrive, "oAuth2OneDrive");
this.oAuth2OneDrive.Name = "oAuth2OneDrive";
this.oAuth2OneDrive.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oAuth2OneDrive_OpenButtonClicked);
this.oAuth2OneDrive.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oAuth2OneDrive_CompleteButtonClicked);
this.oAuth2OneDrive.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oAuth2OneDrive_ClearButtonClicked);
this.oAuth2OneDrive.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oAuth2OneDrive_RefreshButtonClicked);
//
// tpGoogleDrive
//
this.tpGoogleDrive.Controls.Add(this.cbGoogleDriveDirectLink);
@ -1897,6 +1965,15 @@ private void InitializeComponent()
this.cbGoogleDriveIsPublic.UseVisualStyleBackColor = true;
this.cbGoogleDriveIsPublic.CheckedChanged += new System.EventHandler(this.cbGoogleDriveIsPublic_CheckedChanged);
//
// oauth2GoogleDrive
//
resources.ApplyResources(this.oauth2GoogleDrive, "oauth2GoogleDrive");
this.oauth2GoogleDrive.Name = "oauth2GoogleDrive";
this.oauth2GoogleDrive.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2GoogleDrive_OpenButtonClicked);
this.oauth2GoogleDrive.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2GoogleDrive_CompleteButtonClicked);
this.oauth2GoogleDrive.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2GoogleDrive_ClearButtonClicked);
this.oauth2GoogleDrive.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oauth2GoogleDrive_RefreshButtonClicked);
//
// tpPuush
//
this.tpPuush.Controls.Add(this.pbPuush);
@ -2029,6 +2106,15 @@ private void InitializeComponent()
this.btnBoxRefreshFolders.UseVisualStyleBackColor = true;
this.btnBoxRefreshFolders.Click += new System.EventHandler(this.btnBoxRefreshFolders_Click);
//
// oauth2Box
//
resources.ApplyResources(this.oauth2Box, "oauth2Box");
this.oauth2Box.Name = "oauth2Box";
this.oauth2Box.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2Box_OpenButtonClicked);
this.oauth2Box.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2Box_CompleteButtonClicked);
this.oauth2Box.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2Box_ClearButtonClicked);
this.oauth2Box.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oauth2Box_RefreshButtonClicked);
//
// tpAmazonS3
//
this.tpAmazonS3.Controls.Add(this.txtAmazonS3CustomDomain);
@ -2140,6 +2226,60 @@ private void InitializeComponent()
this.txtAmazonS3AccessKey.Name = "txtAmazonS3AccessKey";
this.txtAmazonS3AccessKey.TextChanged += new System.EventHandler(this.txtAmazonS3AccessKey_TextChanged);
//
// tpAzureStorage
//
this.tpAzureStorage.Controls.Add(this.btnAzureStoragePortal);
this.tpAzureStorage.Controls.Add(this.txtAzureStorageContainer);
this.tpAzureStorage.Controls.Add(this.lblAzureStorageContainer);
this.tpAzureStorage.Controls.Add(this.txtAzureStorageAccessKey);
this.tpAzureStorage.Controls.Add(this.lblAzureStorageAccessKey);
this.tpAzureStorage.Controls.Add(this.txtAzureStorageAccountName);
this.tpAzureStorage.Controls.Add(this.lblAzureStorageAccountName);
resources.ApplyResources(this.tpAzureStorage, "tpAzureStorage");
this.tpAzureStorage.Name = "tpAzureStorage";
this.tpAzureStorage.UseVisualStyleBackColor = true;
//
// btnAzureStoragePortal
//
resources.ApplyResources(this.btnAzureStoragePortal, "btnAzureStoragePortal");
this.btnAzureStoragePortal.Name = "btnAzureStoragePortal";
this.btnAzureStoragePortal.UseVisualStyleBackColor = true;
this.btnAzureStoragePortal.Click += new System.EventHandler(this.btnAzureStoragePortal_Click);
//
// txtAzureStorageContainer
//
resources.ApplyResources(this.txtAzureStorageContainer, "txtAzureStorageContainer");
this.txtAzureStorageContainer.Name = "txtAzureStorageContainer";
this.txtAzureStorageContainer.TextChanged += new System.EventHandler(this.txtAzureStorageContainer_TextChanged);
//
// lblAzureStorageContainer
//
resources.ApplyResources(this.lblAzureStorageContainer, "lblAzureStorageContainer");
this.lblAzureStorageContainer.Name = "lblAzureStorageContainer";
//
// txtAzureStorageAccessKey
//
resources.ApplyResources(this.txtAzureStorageAccessKey, "txtAzureStorageAccessKey");
this.txtAzureStorageAccessKey.Name = "txtAzureStorageAccessKey";
this.txtAzureStorageAccessKey.UseSystemPasswordChar = true;
this.txtAzureStorageAccessKey.TextChanged += new System.EventHandler(this.txtAzureStorageAccessKey_TextChanged);
//
// lblAzureStorageAccessKey
//
resources.ApplyResources(this.lblAzureStorageAccessKey, "lblAzureStorageAccessKey");
this.lblAzureStorageAccessKey.Name = "lblAzureStorageAccessKey";
//
// txtAzureStorageAccountName
//
resources.ApplyResources(this.txtAzureStorageAccountName, "txtAzureStorageAccountName");
this.txtAzureStorageAccountName.Name = "txtAzureStorageAccountName";
this.txtAzureStorageAccountName.TextChanged += new System.EventHandler(this.txtAzureStorageAccountName_TextChanged);
//
// lblAzureStorageAccountName
//
resources.ApplyResources(this.lblAzureStorageAccountName, "lblAzureStorageAccountName");
this.lblAzureStorageAccountName.Name = "lblAzureStorageAccountName";
//
// tpMega
//
this.tpMega.Controls.Add(this.btnMegaRefreshFolders);
@ -2452,6 +2592,13 @@ private void InitializeComponent()
this.txtSendSpaceUserName.Name = "txtSendSpaceUserName";
this.txtSendSpaceUserName.TextChanged += new System.EventHandler(this.txtSendSpaceUserName_TextChanged);
//
// atcSendSpaceAccountType
//
resources.ApplyResources(this.atcSendSpaceAccountType, "atcSendSpaceAccountType");
this.atcSendSpaceAccountType.Name = "atcSendSpaceAccountType";
this.atcSendSpaceAccountType.SelectedAccountType = ShareX.UploadersLib.AccountType.Anonymous;
this.atcSendSpaceAccountType.AccountTypeChanged += new ShareX.UploadersLib.AccountTypeControl.AccountTypeChangedEventHandler(this.atcSendSpaceAccountType_AccountTypeChanged);
//
// tpGe_tt
//
this.tpGe_tt.Controls.Add(this.lblGe_ttStatus);
@ -2707,6 +2854,15 @@ private void InitializeComponent()
resources.ApplyResources(this.lblJiraHost, "lblJiraHost");
this.lblJiraHost.Name = "lblJiraHost";
//
// oAuthJira
//
resources.ApplyResources(this.oAuthJira, "oAuthJira");
this.oAuthJira.Name = "oAuthJira";
this.oAuthJira.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oAuthJira_OpenButtonClicked);
this.oAuthJira.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oAuthJira_CompleteButtonClicked);
this.oAuthJira.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oAuthJira_ClearButtonClicked);
this.oAuthJira.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oAuthJira_RefreshButtonClicked);
//
// tpLambda
//
this.tpLambda.Controls.Add(this.lblLambdaInfo);
@ -3333,6 +3489,11 @@ private void InitializeComponent()
this.cboSharedFolderImages.Name = "cboSharedFolderImages";
this.cboSharedFolderImages.SelectedIndexChanged += new System.EventHandler(this.cboSharedFolderImages_SelectedIndexChanged);
//
// ucLocalhostAccounts
//
resources.ApplyResources(this.ucLocalhostAccounts, "ucLocalhostAccounts");
this.ucLocalhostAccounts.Name = "ucLocalhostAccounts";
//
// tpEmail
//
this.tpEmail.Controls.Add(this.txtEmailAutomaticSendTo);
@ -3641,6 +3802,22 @@ private void InitializeComponent()
this.cbGistPublishPublic.UseVisualStyleBackColor = true;
this.cbGistPublishPublic.CheckedChanged += new System.EventHandler(this.chkGistPublishPublic_CheckedChanged);
//
// oAuth2Gist
//
resources.ApplyResources(this.oAuth2Gist, "oAuth2Gist");
this.oAuth2Gist.IsRefreshable = false;
this.oAuth2Gist.Name = "oAuth2Gist";
this.oAuth2Gist.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oAuth2Gist_OpenButtonClicked);
this.oAuth2Gist.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oAuth2Gist_CompleteButtonClicked);
this.oAuth2Gist.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oAuth2Gist_ClearButtonClicked);
//
// atcGistAccountType
//
resources.ApplyResources(this.atcGistAccountType, "atcGistAccountType");
this.atcGistAccountType.Name = "atcGistAccountType";
this.atcGistAccountType.SelectedAccountType = ShareX.UploadersLib.AccountType.Anonymous;
this.atcGistAccountType.AccountTypeChanged += new ShareX.UploadersLib.AccountTypeControl.AccountTypeChangedEventHandler(this.atcGistAccountType_AccountTypeChanged);
//
// tpUpaste
//
this.tpUpaste.Controls.Add(this.cbUpasteIsPublic);
@ -3822,6 +3999,22 @@ private void InitializeComponent()
this.cbImgurDirectLink.UseVisualStyleBackColor = true;
this.cbImgurDirectLink.CheckedChanged += new System.EventHandler(this.cbImgurDirectLink_CheckedChanged);
//
// atcImgurAccountType
//
resources.ApplyResources(this.atcImgurAccountType, "atcImgurAccountType");
this.atcImgurAccountType.Name = "atcImgurAccountType";
this.atcImgurAccountType.SelectedAccountType = ShareX.UploadersLib.AccountType.Anonymous;
this.atcImgurAccountType.AccountTypeChanged += new ShareX.UploadersLib.AccountTypeControl.AccountTypeChangedEventHandler(this.atcImgurAccountType_AccountTypeChanged);
//
// oauth2Imgur
//
resources.ApplyResources(this.oauth2Imgur, "oauth2Imgur");
this.oauth2Imgur.Name = "oauth2Imgur";
this.oauth2Imgur.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2Imgur_OpenButtonClicked);
this.oauth2Imgur.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2Imgur_CompleteButtonClicked);
this.oauth2Imgur.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2Imgur_ClearButtonClicked);
this.oauth2Imgur.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oauth2Imgur_RefreshButtonClicked);
//
// lvImgurAlbumList
//
this.lvImgurAlbumList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
@ -3948,6 +4141,13 @@ private void InitializeComponent()
this.tpTinyPic.Name = "tpTinyPic";
this.tpTinyPic.UseVisualStyleBackColor = true;
//
// atcTinyPicAccountType
//
resources.ApplyResources(this.atcTinyPicAccountType, "atcTinyPicAccountType");
this.atcTinyPicAccountType.Name = "atcTinyPicAccountType";
this.atcTinyPicAccountType.SelectedAccountType = ShareX.UploadersLib.AccountType.Anonymous;
this.atcTinyPicAccountType.AccountTypeChanged += new ShareX.UploadersLib.AccountTypeControl.AccountTypeChangedEventHandler(this.atcTinyPicAccountType_AccountTypeChanged);
//
// btnTinyPicLogin
//
resources.ApplyResources(this.btnTinyPicLogin, "btnTinyPicLogin");
@ -4008,6 +4208,7 @@ private void InitializeComponent()
//
this.pgFlickrAuthInfo.CategoryForeColor = System.Drawing.SystemColors.InactiveCaptionText;
this.pgFlickrAuthInfo.CommandsVisibleIfAvailable = false;
this.pgFlickrAuthInfo.LineColor = System.Drawing.SystemColors.ControlDark;
resources.ApplyResources(this.pgFlickrAuthInfo, "pgFlickrAuthInfo");
this.pgFlickrAuthInfo.Name = "pgFlickrAuthInfo";
this.pgFlickrAuthInfo.PropertySort = System.Windows.Forms.PropertySort.NoSort;
@ -4017,6 +4218,7 @@ private void InitializeComponent()
//
this.pgFlickrSettings.CategoryForeColor = System.Drawing.SystemColors.InactiveCaptionText;
this.pgFlickrSettings.CommandsVisibleIfAvailable = false;
this.pgFlickrSettings.LineColor = System.Drawing.SystemColors.ControlDark;
resources.ApplyResources(this.pgFlickrSettings, "pgFlickrSettings");
this.pgFlickrSettings.Name = "pgFlickrSettings";
this.pgFlickrSettings.PropertySort = System.Windows.Forms.PropertySort.NoSort;
@ -4228,6 +4430,15 @@ private void InitializeComponent()
this.btnPicasaRefreshAlbumList.UseVisualStyleBackColor = true;
this.btnPicasaRefreshAlbumList.Click += new System.EventHandler(this.btnPicasaRefreshAlbumList_Click);
//
// oauth2Picasa
//
resources.ApplyResources(this.oauth2Picasa, "oauth2Picasa");
this.oauth2Picasa.Name = "oauth2Picasa";
this.oauth2Picasa.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2Picasa_OpenButtonClicked);
this.oauth2Picasa.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2Picasa_CompleteButtonClicked);
this.oauth2Picasa.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2Picasa_ClearButtonClicked);
this.oauth2Picasa.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oauth2Picasa_RefreshButtonClicked);
//
// tpChevereto
//
this.tpChevereto.Controls.Add(this.btnCheveretoTestAll);
@ -4384,150 +4595,6 @@ private void InitializeComponent()
this.ttlvMain.MainTabControl = null;
this.ttlvMain.Name = "ttlvMain";
//
// atcImgurAccountType
//
resources.ApplyResources(this.atcImgurAccountType, "atcImgurAccountType");
this.atcImgurAccountType.Name = "atcImgurAccountType";
this.atcImgurAccountType.SelectedAccountType = ShareX.UploadersLib.AccountType.Anonymous;
this.atcImgurAccountType.AccountTypeChanged += new ShareX.UploadersLib.AccountTypeControl.AccountTypeChangedEventHandler(this.atcImgurAccountType_AccountTypeChanged);
//
// oauth2Imgur
//
resources.ApplyResources(this.oauth2Imgur, "oauth2Imgur");
this.oauth2Imgur.Name = "oauth2Imgur";
this.oauth2Imgur.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2Imgur_OpenButtonClicked);
this.oauth2Imgur.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2Imgur_CompleteButtonClicked);
this.oauth2Imgur.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2Imgur_ClearButtonClicked);
this.oauth2Imgur.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oauth2Imgur_RefreshButtonClicked);
//
// atcTinyPicAccountType
//
resources.ApplyResources(this.atcTinyPicAccountType, "atcTinyPicAccountType");
this.atcTinyPicAccountType.Name = "atcTinyPicAccountType";
this.atcTinyPicAccountType.SelectedAccountType = ShareX.UploadersLib.AccountType.Anonymous;
this.atcTinyPicAccountType.AccountTypeChanged += new ShareX.UploadersLib.AccountTypeControl.AccountTypeChangedEventHandler(this.atcTinyPicAccountType_AccountTypeChanged);
//
// oauth2Picasa
//
resources.ApplyResources(this.oauth2Picasa, "oauth2Picasa");
this.oauth2Picasa.Name = "oauth2Picasa";
this.oauth2Picasa.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2Picasa_OpenButtonClicked);
this.oauth2Picasa.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2Picasa_CompleteButtonClicked);
this.oauth2Picasa.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2Picasa_ClearButtonClicked);
this.oauth2Picasa.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oauth2Picasa_RefreshButtonClicked);
//
// oAuth2Gist
//
resources.ApplyResources(this.oAuth2Gist, "oAuth2Gist");
this.oAuth2Gist.IsRefreshable = false;
this.oAuth2Gist.Name = "oAuth2Gist";
this.oAuth2Gist.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oAuth2Gist_OpenButtonClicked);
this.oAuth2Gist.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oAuth2Gist_CompleteButtonClicked);
this.oAuth2Gist.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oAuth2Gist_ClearButtonClicked);
//
// atcGistAccountType
//
resources.ApplyResources(this.atcGistAccountType, "atcGistAccountType");
this.atcGistAccountType.Name = "atcGistAccountType";
this.atcGistAccountType.SelectedAccountType = ShareX.UploadersLib.AccountType.Anonymous;
this.atcGistAccountType.AccountTypeChanged += new ShareX.UploadersLib.AccountTypeControl.AccountTypeChangedEventHandler(this.atcGistAccountType_AccountTypeChanged);
//
// ucFTPAccounts
//
resources.ApplyResources(this.ucFTPAccounts, "ucFTPAccounts");
this.ucFTPAccounts.Name = "ucFTPAccounts";
//
// oauth2Dropbox
//
this.oauth2Dropbox.IsRefreshable = false;
resources.ApplyResources(this.oauth2Dropbox, "oauth2Dropbox");
this.oauth2Dropbox.Name = "oauth2Dropbox";
this.oauth2Dropbox.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2Dropbox_OpenButtonClicked);
this.oauth2Dropbox.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2Dropbox_CompleteButtonClicked);
this.oauth2Dropbox.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2Dropbox_ClearButtonClicked);
//
// oAuth2OneDrive
//
resources.ApplyResources(this.oAuth2OneDrive, "oAuth2OneDrive");
this.oAuth2OneDrive.Name = "oAuth2OneDrive";
this.oAuth2OneDrive.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oAuth2OneDrive_OpenButtonClicked);
this.oAuth2OneDrive.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oAuth2OneDrive_CompleteButtonClicked);
this.oAuth2OneDrive.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oAuth2OneDrive_ClearButtonClicked);
this.oAuth2OneDrive.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oAuth2OneDrive_RefreshButtonClicked);
//
// oauth2GoogleDrive
//
resources.ApplyResources(this.oauth2GoogleDrive, "oauth2GoogleDrive");
this.oauth2GoogleDrive.Name = "oauth2GoogleDrive";
this.oauth2GoogleDrive.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2GoogleDrive_OpenButtonClicked);
this.oauth2GoogleDrive.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2GoogleDrive_CompleteButtonClicked);
this.oauth2GoogleDrive.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2GoogleDrive_ClearButtonClicked);
this.oauth2GoogleDrive.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oauth2GoogleDrive_RefreshButtonClicked);
//
// oauth2Box
//
resources.ApplyResources(this.oauth2Box, "oauth2Box");
this.oauth2Box.Name = "oauth2Box";
this.oauth2Box.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2Box_OpenButtonClicked);
this.oauth2Box.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2Box_CompleteButtonClicked);
this.oauth2Box.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2Box_ClearButtonClicked);
this.oauth2Box.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oauth2Box_RefreshButtonClicked);
//
// atcSendSpaceAccountType
//
resources.ApplyResources(this.atcSendSpaceAccountType, "atcSendSpaceAccountType");
this.atcSendSpaceAccountType.Name = "atcSendSpaceAccountType";
this.atcSendSpaceAccountType.SelectedAccountType = ShareX.UploadersLib.AccountType.Anonymous;
this.atcSendSpaceAccountType.AccountTypeChanged += new ShareX.UploadersLib.AccountTypeControl.AccountTypeChangedEventHandler(this.atcSendSpaceAccountType_AccountTypeChanged);
//
// oAuthJira
//
resources.ApplyResources(this.oAuthJira, "oAuthJira");
this.oAuthJira.Name = "oAuthJira";
this.oAuthJira.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oAuthJira_OpenButtonClicked);
this.oAuthJira.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oAuthJira_CompleteButtonClicked);
this.oAuthJira.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oAuthJira_ClearButtonClicked);
this.oAuthJira.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oAuthJira_RefreshButtonClicked);
//
// oauthTwitter
//
resources.ApplyResources(this.oauthTwitter, "oauthTwitter");
this.oauthTwitter.IsRefreshable = false;
this.oauthTwitter.Name = "oauthTwitter";
this.oauthTwitter.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauthTwitter_OpenButtonClicked);
this.oauthTwitter.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauthTwitter_CompleteButtonClicked);
this.oauthTwitter.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauthTwitter_ClearButtonClicked);
//
// oauth2Bitly
//
this.oauth2Bitly.IsRefreshable = false;
resources.ApplyResources(this.oauth2Bitly, "oauth2Bitly");
this.oauth2Bitly.Name = "oauth2Bitly";
this.oauth2Bitly.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2Bitly_OpenButtonClicked);
this.oauth2Bitly.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2Bitly_CompleteButtonClicked);
this.oauth2Bitly.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2Bitly_ClearButtonClicked);
//
// oauth2GoogleURLShortener
//
resources.ApplyResources(this.oauth2GoogleURLShortener, "oauth2GoogleURLShortener");
this.oauth2GoogleURLShortener.Name = "oauth2GoogleURLShortener";
this.oauth2GoogleURLShortener.OpenButtonClicked += new ShareX.UploadersLib.OAuthControl.OpenButtonClickedEventHandler(this.oauth2GoogleURLShortener_OpenButtonClicked);
this.oauth2GoogleURLShortener.CompleteButtonClicked += new ShareX.UploadersLib.OAuthControl.CompleteButtonClickedEventHandler(this.oauth2GoogleURLShortener_CompleteButtonClicked);
this.oauth2GoogleURLShortener.ClearButtonClicked += new ShareX.UploadersLib.OAuthControl.ClearButtonclickedEventHandler(this.oauth2GoogleURLShortener_ClearButtonClicked);
this.oauth2GoogleURLShortener.RefreshButtonClicked += new ShareX.UploadersLib.OAuthControl.RefreshButtonClickedEventHandler(this.oauth2GoogleURLShortener_RefreshButtonClicked);
//
// atcGoogleURLShortenerAccountType
//
resources.ApplyResources(this.atcGoogleURLShortenerAccountType, "atcGoogleURLShortenerAccountType");
this.atcGoogleURLShortenerAccountType.Name = "atcGoogleURLShortenerAccountType";
this.atcGoogleURLShortenerAccountType.SelectedAccountType = ShareX.UploadersLib.AccountType.Anonymous;
this.atcGoogleURLShortenerAccountType.AccountTypeChanged += new ShareX.UploadersLib.AccountTypeControl.AccountTypeChangedEventHandler(this.atcGoogleURLShortenerAccountType_AccountTypeChanged);
//
// ucLocalhostAccounts
//
resources.ApplyResources(this.ucLocalhostAccounts, "ucLocalhostAccounts");
this.ucLocalhostAccounts.Name = "ucLocalhostAccounts";
//
// actRapidShareAccountType
//
resources.ApplyResources(this.actRapidShareAccountType, "actRapidShareAccountType");
@ -4597,6 +4664,8 @@ private void InitializeComponent()
this.tpBox.PerformLayout();
this.tpAmazonS3.ResumeLayout(false);
this.tpAmazonS3.PerformLayout();
this.tpAzureStorage.ResumeLayout(false);
this.tpAzureStorage.PerformLayout();
this.tpMega.ResumeLayout(false);
this.tpMega.PerformLayout();
this.tpOwnCloud.ResumeLayout(false);
@ -5231,5 +5300,13 @@ private void InitializeComponent()
private System.Windows.Forms.CheckBox cbPolrIsSecret;
private HelpersLib.MenuButton mbCustomUploaderDestinationType;
private System.Windows.Forms.ContextMenuStrip cmsCustomUploaderDestinationType;
internal System.Windows.Forms.TabPage tpAzureStorage;
private System.Windows.Forms.Label lblAzureStorageAccessKey;
private System.Windows.Forms.TextBox txtAzureStorageAccountName;
private System.Windows.Forms.Label lblAzureStorageAccountName;
private System.Windows.Forms.TextBox txtAzureStorageAccessKey;
private System.Windows.Forms.TextBox txtAzureStorageContainer;
private System.Windows.Forms.Label lblAzureStorageContainer;
private System.Windows.Forms.Button btnAzureStoragePortal;
}
}

View file

@ -590,6 +590,11 @@ public void LoadSettings()
cbUpleaInstantDownloadEnabled.Checked = Config.UpleaInstantDownloadEnabled;
cbUpleaIsPremium.Checked = Config.UpleaIsPremiumMember;
// Azure Storage
txtAzureStorageAccountName.Text = Config.AzureStorageAccountName;
txtAzureStorageAccessKey.Text = Config.AzureStorageAccountAccessKey;
txtAzureStorageContainer.Text = Config.AzureStorageContainer;
#endregion File uploaders
#region URL shorteners
@ -2603,6 +2608,30 @@ private void cbUpleaInstantDownloadEnabled_CheckedChanged(object sender, EventAr
#endregion Uplea
#region Azure Storage
private void txtAzureStorageAccountName_TextChanged(object sender, EventArgs e)
{
Config.AzureStorageAccountName = txtAzureStorageAccountName.Text;
}
private void txtAzureStorageAccessKey_TextChanged(object sender, EventArgs e)
{
Config.AzureStorageAccountAccessKey = txtAzureStorageAccessKey.Text;
}
private void txtAzureStorageContainer_TextChanged(object sender, EventArgs e)
{
Config.AzureStorageContainer = txtAzureStorageContainer.Text;
}
private void btnAzureStoragePortal_Click(object sender, EventArgs e)
{
URLHelpers.OpenURL("https://portal.azure.com/?feature.customportal=false#blade/HubsExtension/Resources/resourceType/Microsoft.Storage%2FStorageAccounts");
}
#endregion Azure Storage
#endregion File Uploaders
#region URL Shorteners

View file

@ -207,6 +207,207 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="&gt;&gt;cbAmazonS3CustomCNAME.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="btnAzureStoragePortal.Location" type="System.Drawing.Point, System.Drawing">
<value>556, 48</value>
</data>
<data name="btnAzureStoragePortal.Size" type="System.Drawing.Size, System.Drawing">
<value>40, 26</value>
</data>
<data name="btnAzureStoragePortal.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="btnAzureStoragePortal.Text" xml:space="preserve">
<value>...</value>
</data>
<data name="&gt;&gt;btnAzureStoragePortal.Name" xml:space="preserve">
<value>btnAzureStoragePortal</value>
</data>
<data name="&gt;&gt;btnAzureStoragePortal.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnAzureStoragePortal.Parent" xml:space="preserve">
<value>tpAzureStorage</value>
</data>
<data name="&gt;&gt;btnAzureStoragePortal.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="txtAzureStorageContainer.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 201</value>
</data>
<data name="txtAzureStorageContainer.Size" type="System.Drawing.Size, System.Drawing">
<value>526, 26</value>
</data>
<data name="txtAzureStorageContainer.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="&gt;&gt;txtAzureStorageContainer.Name" xml:space="preserve">
<value>txtAzureStorageContainer</value>
</data>
<data name="&gt;&gt;txtAzureStorageContainer.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtAzureStorageContainer.Parent" xml:space="preserve">
<value>tpAzureStorage</value>
</data>
<data name="&gt;&gt;txtAzureStorageContainer.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="lblAzureStorageContainer.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblAzureStorageContainer.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 178</value>
</data>
<data name="lblAzureStorageContainer.Size" type="System.Drawing.Size, System.Drawing">
<value>82, 20</value>
</data>
<data name="lblAzureStorageContainer.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="lblAzureStorageContainer.Text" xml:space="preserve">
<value>Container:</value>
</data>
<data name="&gt;&gt;lblAzureStorageContainer.Name" xml:space="preserve">
<value>lblAzureStorageContainer</value>
</data>
<data name="&gt;&gt;lblAzureStorageContainer.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblAzureStorageContainer.Parent" xml:space="preserve">
<value>tpAzureStorage</value>
</data>
<data name="&gt;&gt;lblAzureStorageContainer.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="txtAzureStorageAccessKey.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 121</value>
</data>
<data name="txtAzureStorageAccessKey.Size" type="System.Drawing.Size, System.Drawing">
<value>526, 26</value>
</data>
<data name="txtAzureStorageAccessKey.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="&gt;&gt;txtAzureStorageAccessKey.Name" xml:space="preserve">
<value>txtAzureStorageAccessKey</value>
</data>
<data name="&gt;&gt;txtAzureStorageAccessKey.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtAzureStorageAccessKey.Parent" xml:space="preserve">
<value>tpAzureStorage</value>
</data>
<data name="&gt;&gt;txtAzureStorageAccessKey.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="lblAzureStorageAccessKey.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblAzureStorageAccessKey.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 98</value>
</data>
<data name="lblAzureStorageAccessKey.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data>
<data name="lblAzureStorageAccessKey.Size" type="System.Drawing.Size, System.Drawing">
<value>93, 20</value>
</data>
<data name="lblAzureStorageAccessKey.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="lblAzureStorageAccessKey.Text" xml:space="preserve">
<value>Access key:</value>
</data>
<data name="&gt;&gt;lblAzureStorageAccessKey.Name" xml:space="preserve">
<value>lblAzureStorageAccessKey</value>
</data>
<data name="&gt;&gt;lblAzureStorageAccessKey.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblAzureStorageAccessKey.Parent" xml:space="preserve">
<value>tpAzureStorage</value>
</data>
<data name="&gt;&gt;lblAzureStorageAccessKey.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="txtAzureStorageAccountName.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 48</value>
</data>
<data name="txtAzureStorageAccountName.Size" type="System.Drawing.Size, System.Drawing">
<value>526, 26</value>
</data>
<data name="txtAzureStorageAccountName.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;txtAzureStorageAccountName.Name" xml:space="preserve">
<value>txtAzureStorageAccountName</value>
</data>
<data name="&gt;&gt;txtAzureStorageAccountName.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtAzureStorageAccountName.Parent" xml:space="preserve">
<value>tpAzureStorage</value>
</data>
<data name="&gt;&gt;txtAzureStorageAccountName.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="lblAzureStorageAccountName.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblAzureStorageAccountName.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 25</value>
</data>
<data name="lblAzureStorageAccountName.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data>
<data name="lblAzureStorageAccountName.Size" type="System.Drawing.Size, System.Drawing">
<value>116, 20</value>
</data>
<data name="lblAzureStorageAccountName.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="lblAzureStorageAccountName.Text" xml:space="preserve">
<value>Account name:</value>
</data>
<data name="&gt;&gt;lblAzureStorageAccountName.Name" xml:space="preserve">
<value>lblAzureStorageAccountName</value>
</data>
<data name="&gt;&gt;lblAzureStorageAccountName.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblAzureStorageAccountName.Parent" xml:space="preserve">
<value>tpAzureStorage</value>
</data>
<data name="&gt;&gt;lblAzureStorageAccountName.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="tpAzureStorage.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 54</value>
</data>
<data name="tpAzureStorage.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpAzureStorage.Size" type="System.Drawing.Size, System.Drawing">
<value>1468, 746</value>
</data>
<data name="tpAzureStorage.TabIndex" type="System.Int32, mscorlib">
<value>28</value>
</data>
<data name="tpAzureStorage.Text" xml:space="preserve">
<value>Azure Storage</value>
</data>
<data name="&gt;&gt;tpAzureStorage.Name" xml:space="preserve">
<value>tpAzureStorage</value>
</data>
<data name="&gt;&gt;tpAzureStorage.Type" xml:space="preserve">
<value>System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tpAzureStorage.Parent" xml:space="preserve">
<value>tcFileUploaders</value>
</data>
<data name="&gt;&gt;tpAzureStorage.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="btnTwitterNameUpdate.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>

View file

@ -80,6 +80,16 @@ internal class Resources {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap AzureStorage {
get {
object obj = ResourceManager.GetObject("AzureStorage", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>

View file

@ -398,4 +398,7 @@ Created folders:</value>
<data name="Pastie" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Favicons\Pastie.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AzureStorage" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Favicons\AzureStorage.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View file

@ -124,6 +124,8 @@
<Compile Include="BaseUploaders\GenericUploader.cs" />
<Compile Include="FileUploaders\AmazonS3Region.cs" />
<Compile Include="FileUploaders\AmazonS3Settings.cs" />
<Compile Include="FileUploaders\AzureStorage.cs" />
<Compile Include="FileUploaders\AzureStorageSettings.cs" />
<Compile Include="FileUploaders\Box.cs" />
<Compile Include="FileUploaders\Lithiio.cs" />
<Compile Include="FileUploaders\Puush.cs" />
@ -882,6 +884,7 @@
</ItemGroup>
<ItemGroup>
<None Include="Favicons\Pastie.png" />
<Content Include="Favicons\AzureStorage.png" />
<Content Include="Favicons\Uplea.ico" />
</ItemGroup>
<ItemGroup>

View file

@ -298,6 +298,12 @@ public class UploadersConfig : SettingsBase<UploadersConfig>
public bool UpleaIsPremiumMember = false;
public bool UpleaInstantDownloadEnabled = false;
// Azure Storage
public string AzureStorageAccountName = "";
public string AzureStorageAccountAccessKey = "";
public string AzureStorageContainer = "";
#endregion File uploaders
#region URL shorteners