Added create shareable link setting to OneDrive

This commit is contained in:
Jaex 2014-12-25 23:23:42 +02:00
parent 43c59a8236
commit 3e6d87f150
6 changed files with 269 additions and 166 deletions

View file

@ -28,6 +28,7 @@ You should have received a copy of the GNU General Public License
using ShareX.UploadersLib.HelperClasses;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.IO;
namespace ShareX.UploadersLib.FileUploaders
@ -36,6 +37,7 @@ public sealed class OneDrive : FileUploader, IOAuth2
{
public OAuth2Info AuthInfo { get; set; }
public string FolderID { get; set; }
public bool AutoCreateShareableLink { get; set; }
public OneDrive(OAuth2Info authInfo)
{
@ -129,13 +131,6 @@ public bool CheckAuthorization()
return true;
}
private NameValueCollection GetAuthHeaders()
{
NameValueCollection headers = new NameValueCollection();
headers.Add("Authorization", "Bearer " + AuthInfo.Token.access_token);
return headers;
}
public override UploadResult Upload(Stream stream, string fileName)
{
if (!CheckAuthorization()) return null;
@ -152,17 +147,75 @@ public override UploadResult Upload(Stream stream, string fileName)
if (result.IsSuccess)
{
OneDriveUploadInfo uploadInfo = JsonConvert.DeserializeObject<OneDriveUploadInfo>(result.Response);
if (AutoCreateShareableLink)
{
result.URL = CreateShareableLink(uploadInfo.id);
}
else
{
result.URL = uploadInfo.source;
}
}
return result;
}
public string CreateShareableLink(string id, OneDriveLinkType linkType = OneDriveLinkType.Read)
{
Dictionary<string, string> args = new Dictionary<string, string>();
args.Add("access_token", AuthInfo.Token.access_token);
string linkTypeValue;
switch (linkType)
{
case OneDriveLinkType.Embed:
linkTypeValue = "embed";
break;
default:
case OneDriveLinkType.Read:
linkTypeValue = "shared_read_link";
break;
case OneDriveLinkType.Edit:
linkTypeValue = "shared_edit_link";
break;
}
string url = CreateQuery(string.Format("https://apis.live.net/v5.0/{0}/{1}", id, linkTypeValue), args);
string response = SendRequest(HttpMethod.GET, url);
OneDriveShareableLinkInfo shareableLinkInfo = JsonConvert.DeserializeObject<OneDriveShareableLinkInfo>(response);
if (shareableLinkInfo != null)
{
return shareableLinkInfo.link;
}
return null;
}
private class OneDriveUploadInfo
{
public string id { get; set; }
public string name { get; set; }
public string source { get; set; }
}
private class OneDriveShareableLinkInfo
{
public string link { get; set; }
}
}
public enum OneDriveLinkType
{
[Description("An embedded link, which is an HTML code snippet that you can insert into a webpage to provide an interactive view of the corresponding file.")]
Embed,
[Description("A read-only link, which is a link to a read-only version of the folder or file.")]
Read,
[Description("A read-write link, which is a link to a read-write version of the folder or file.")]
Edit
}
}

View file

@ -417,6 +417,7 @@ private void InitializeComponent()
this.lblWidthHint = new System.Windows.Forms.Label();
this.ttlvMain = new ShareX.HelpersLib.TabToListView();
this.actRapidShareAccountType = new ShareX.UploadersLib.AccountTypeControl();
this.cbOneDriveCreateShareableLink = new System.Windows.Forms.CheckBox();
this.tpOtherUploaders.SuspendLayout();
this.tcOtherUploaders.SuspendLayout();
this.tpCustomUploaders.SuspendLayout();
@ -1153,10 +1154,10 @@ private void InitializeComponent()
//
this.tcFileUploaders.Controls.Add(this.tpFTP);
this.tcFileUploaders.Controls.Add(this.tpDropbox);
this.tcFileUploaders.Controls.Add(this.tpOneDrive);
this.tcFileUploaders.Controls.Add(this.tpGoogleDrive);
this.tcFileUploaders.Controls.Add(this.tpBox);
this.tcFileUploaders.Controls.Add(this.tpCopy);
this.tcFileUploaders.Controls.Add(this.tpOneDrive);
this.tcFileUploaders.Controls.Add(this.tpAmazonS3);
this.tcFileUploaders.Controls.Add(this.tpMega);
this.tcFileUploaders.Controls.Add(this.tpOwnCloud);
@ -1540,6 +1541,7 @@ private void InitializeComponent()
//
// tpOneDrive
//
this.tpOneDrive.Controls.Add(this.cbOneDriveCreateShareableLink);
this.tpOneDrive.Controls.Add(this.oAuth2OneDrive);
resources.ApplyResources(this.tpOneDrive, "tpOneDrive");
this.tpOneDrive.Name = "tpOneDrive";
@ -3303,6 +3305,13 @@ private void InitializeComponent()
this.actRapidShareAccountType.Name = "actRapidShareAccountType";
this.actRapidShareAccountType.SelectedAccountType = ShareX.UploadersLib.AccountType.Anonymous;
//
// cbOneDriveCreateShareableLink
//
resources.ApplyResources(this.cbOneDriveCreateShareableLink, "cbOneDriveCreateShareableLink");
this.cbOneDriveCreateShareableLink.Name = "cbOneDriveCreateShareableLink";
this.cbOneDriveCreateShareableLink.UseVisualStyleBackColor = true;
this.cbOneDriveCreateShareableLink.CheckedChanged += new System.EventHandler(this.cbOneDriveCreateShareableLink_CheckedChanged);
//
// UploadersConfigForm
//
resources.ApplyResources(this, "$this");
@ -3350,6 +3359,7 @@ private void InitializeComponent()
this.tpCopy.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCopyLogo)).EndInit();
this.tpOneDrive.ResumeLayout(false);
this.tpOneDrive.PerformLayout();
this.tpAmazonS3.ResumeLayout(false);
this.tpAmazonS3.PerformLayout();
this.tpMega.ResumeLayout(false);
@ -3811,5 +3821,6 @@ private void InitializeComponent()
private System.Windows.Forms.TextBox txtHastebinCustomDomain;
private System.Windows.Forms.Label lblHastebinSyntaxHighlighting;
private System.Windows.Forms.Label lblHastebinCustomDomain;
private System.Windows.Forms.CheckBox cbOneDriveCreateShareableLink;
}
}

View file

@ -330,13 +330,15 @@ public void LoadSettings(UploadersConfig uploadersConfig)
txtGoogleDriveFolderID.Enabled = Config.GoogleDriveUseFolder;
txtGoogleDriveFolderID.Text = Config.GoogleDriveFolderID;
// One Drive
// OneDrive
if (OAuth2Info.CheckOAuth(Config.OneDriveOAuth2Info))
{
oAuth2OneDrive.Status = OAuthLoginStatus.LoginSuccessful;
}
cbOneDriveCreateShareableLink.Checked = Config.OneDriveAutoCreateShareableLink;
// Minus
cbMinusURLType.Items.Clear();
@ -1113,6 +1115,35 @@ private void cbCopyURLType_SelectedIndexChanged(object sender, EventArgs e)
#endregion Copy
#region OneDrive
private void oAuth2OneDrive_OpenButtonClicked()
{
OneDriveAuthOpen();
}
private void oAuth2OneDrive_CompleteButtonClicked(string code)
{
OneDriveAuthComplete(code);
}
private void oAuth2OneDrive_RefreshButtonClicked()
{
OneDriveAuthRefresh();
}
private void oAuth2OneDrive_ClearButtonClicked()
{
Config.OneDriveOAuth2Info = null;
}
private void cbOneDriveCreateShareableLink_CheckedChanged(object sender, EventArgs e)
{
Config.OneDriveAutoCreateShareableLink = cbOneDriveCreateShareableLink.Checked;
}
#endregion OneDrive
#region Google Drive
private void oauth2GoogleDrive_OpenButtonClicked()
@ -1767,30 +1798,6 @@ private void cbAmazonS3UseRRS_CheckedChanged(object sender, EventArgs e)
#endregion Amazon S3
#region OneDrive
private void oAuth2OneDrive_OpenButtonClicked()
{
OneDriveAuthOpen();
}
private void oAuth2OneDrive_CompleteButtonClicked(string code)
{
OneDriveAuthComplete(code);
}
private void oAuth2OneDrive_RefreshButtonClicked()
{
OneDriveAuthRefresh();
}
private void oAuth2OneDrive_ClearButtonClicked()
{
Config.OneDriveOAuth2Info = null;
}
#endregion OneDrive
#region ownCloud
private void txtOwnCloudHost_TextChanged(object sender, EventArgs e)

View file

@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@ -1187,7 +1188,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="txtCustomUploaderLog.Text" xml:space="preserve">
<value />
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;txtCustomUploaderLog.Name" xml:space="preserve">
<value>txtCustomUploaderLog</value>
</data>
@ -1349,7 +1350,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="lblCustomUploaderURL.Text" xml:space="preserve">
<value>URL:</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;lblCustomUploaderURL.Name" xml:space="preserve">
<value>lblCustomUploaderURL</value>
</data>
@ -1637,7 +1638,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpTwitter.Text" xml:space="preserve">
<value>Twitter</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpTwitter.Name" xml:space="preserve">
<value>tpTwitter</value>
</data>
@ -1787,7 +1788,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpBitly.Text" xml:space="preserve">
<value>bit.ly</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpBitly.Name" xml:space="preserve">
<value>tpBitly</value>
</data>
@ -1856,7 +1857,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpGoogleURLShortener.Text" xml:space="preserve">
<value>Google</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpGoogleURLShortener.Name" xml:space="preserve">
<value>tpGoogleURLShortener</value>
</data>
@ -2090,7 +2091,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="lblYourlsAPIURL.Text" xml:space="preserve">
<value>API URL:</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;lblYourlsAPIURL.Name" xml:space="preserve">
<value>lblYourlsAPIURL</value>
</data>
@ -2117,7 +2118,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpYourls.Text" xml:space="preserve">
<value>YOURLS</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpYourls.Name" xml:space="preserve">
<value>tpYourls</value>
</data>
@ -2198,7 +2199,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="lblAdflyAPIUID.Text" xml:space="preserve">
<value>API UID:</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;lblAdflyAPIUID.Name" xml:space="preserve">
<value>lblAdflyAPIUID</value>
</data>
@ -2276,7 +2277,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpAdFly.Text" xml:space="preserve">
<value>adf.ly</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpAdFly.Name" xml:space="preserve">
<value>tpAdFly</value>
</data>
@ -2582,7 +2583,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpFTP.Text" xml:space="preserve">
<value>FTP</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpFTP.Name" xml:space="preserve">
<value>tpFTP</value>
</data>
@ -2979,20 +2980,20 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>9</value>
</data>
<data name="tpDropbox.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
<value>4, 22</value>
</data>
<data name="tpDropbox.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpDropbox.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
<value>972, 493</value>
</data>
<data name="tpDropbox.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="tpDropbox.Text" xml:space="preserve">
<value>Dropbox</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpDropbox.Name" xml:space="preserve">
<value>tpDropbox</value>
</data>
@ -3005,6 +3006,81 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<data name="&gt;&gt;tpDropbox.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="cbOneDriveCreateShareableLink.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="cbOneDriveCreateShareableLink.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 264</value>
</data>
<data name="cbOneDriveCreateShareableLink.Size" type="System.Drawing.Size, System.Drawing">
<value>125, 17</value>
</data>
<data name="cbOneDriveCreateShareableLink.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="cbOneDriveCreateShareableLink.Text" xml:space="preserve">
<value>Create shareable link</value>
</data>
<data name="&gt;&gt;cbOneDriveCreateShareableLink.Name" xml:space="preserve">
<value>cbOneDriveCreateShareableLink</value>
</data>
<data name="&gt;&gt;cbOneDriveCreateShareableLink.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbOneDriveCreateShareableLink.Parent" xml:space="preserve">
<value>tpOneDrive</value>
</data>
<data name="&gt;&gt;cbOneDriveCreateShareableLink.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="oAuth2OneDrive.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 16</value>
</data>
<data name="oAuth2OneDrive.Size" type="System.Drawing.Size, System.Drawing">
<value>328, 240</value>
</data>
<data name="oAuth2OneDrive.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;oAuth2OneDrive.Name" xml:space="preserve">
<value>oAuth2OneDrive</value>
</data>
<data name="&gt;&gt;oAuth2OneDrive.Type" xml:space="preserve">
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;oAuth2OneDrive.Parent" xml:space="preserve">
<value>tpOneDrive</value>
</data>
<data name="&gt;&gt;oAuth2OneDrive.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tpOneDrive.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
</data>
<data name="tpOneDrive.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpOneDrive.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
</data>
<data name="tpOneDrive.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="tpOneDrive.Text" xml:space="preserve">
<value>OneDrive</value>
</data>
<data name="&gt;&gt;tpOneDrive.Name" xml:space="preserve">
<value>tpOneDrive</value>
</data>
<data name="&gt;&gt;tpOneDrive.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;tpOneDrive.Parent" xml:space="preserve">
<value>tcFileUploaders</value>
</data>
<data name="&gt;&gt;tpOneDrive.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="cbGoogleDriveUseFolder.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
@ -3214,7 +3290,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpGoogleDrive.Text" xml:space="preserve">
<value>Google Drive</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpGoogleDrive.Name" xml:space="preserve">
<value>tpGoogleDrive</value>
</data>
@ -3225,7 +3301,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>tcFileUploaders</value>
</data>
<data name="&gt;&gt;tpGoogleDrive.ZOrder" xml:space="preserve">
<value>2</value>
<value>3</value>
</data>
<data name="lblBoxFolderTip.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -3409,7 +3485,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpBox.Text" xml:space="preserve">
<value>Box</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpBox.Name" xml:space="preserve">
<value>tpBox</value>
</data>
@ -3420,7 +3496,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>tcFileUploaders</value>
</data>
<data name="&gt;&gt;tpBox.ZOrder" xml:space="preserve">
<value>3</value>
<value>4</value>
</data>
<data name="pbCopyLogo.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
@ -3717,20 +3793,20 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>7</value>
</data>
<data name="tpCopy.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
<value>4, 22</value>
</data>
<data name="tpCopy.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpCopy.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
<value>972, 493</value>
</data>
<data name="tpCopy.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="tpCopy.Text" xml:space="preserve">
<value>Copy</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpCopy.Name" xml:space="preserve">
<value>tpCopy</value>
</data>
@ -3741,54 +3817,6 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>tcFileUploaders</value>
</data>
<data name="&gt;&gt;tpCopy.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="oAuth2OneDrive.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 16</value>
</data>
<data name="oAuth2OneDrive.Size" type="System.Drawing.Size, System.Drawing">
<value>328, 240</value>
</data>
<data name="oAuth2OneDrive.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;oAuth2OneDrive.Name" xml:space="preserve">
<value>oAuth2OneDrive</value>
</data>
<data name="&gt;&gt;oAuth2OneDrive.Type" xml:space="preserve">
<value>ShareX.UploadersLib.OAuthControl, ShareX.UploadersLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;oAuth2OneDrive.Parent" xml:space="preserve">
<value>tpOneDrive</value>
</data>
<data name="&gt;&gt;oAuth2OneDrive.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="tpOneDrive.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
</data>
<data name="tpOneDrive.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpOneDrive.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
</data>
<data name="tpOneDrive.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
</data>
<data name="tpOneDrive.Text" xml:space="preserve">
<value>OneDrive</value>
<comment>@Invariant</comment></data>
<data name="&gt;&gt;tpOneDrive.Name" xml:space="preserve">
<value>tpOneDrive</value>
</data>
<data name="&gt;&gt;tpOneDrive.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;tpOneDrive.Parent" xml:space="preserve">
<value>tcFileUploaders</value>
</data>
<data name="&gt;&gt;tpOneDrive.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="txtAmazonS3CustomDomain.Location" type="System.Drawing.Point, System.Drawing">
@ -3886,7 +3914,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="btnAmazonS3BucketNameOpen.Text" xml:space="preserve">
<value>...</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;btnAmazonS3BucketNameOpen.Name" xml:space="preserve">
<value>btnAmazonS3BucketNameOpen</value>
</data>
@ -3913,7 +3941,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="btnAmazonS3AccessKeyOpen.Text" xml:space="preserve">
<value>...</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;btnAmazonS3AccessKeyOpen.Name" xml:space="preserve">
<value>btnAmazonS3AccessKeyOpen</value>
</data>
@ -3928,31 +3956,31 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="cbAmazonS3Endpoint.Items" xml:space="preserve">
<value>https://s3-ap-northeast-1.amazonaws.com/</value>
<comment>@Invariant</comment></data>
</data>
<data name="cbAmazonS3Endpoint.Items1" xml:space="preserve">
<value>https://s3-ap-southeast-1.amazonaws.com/</value>
<comment>@Invariant</comment></data>
</data>
<data name="cbAmazonS3Endpoint.Items2" xml:space="preserve">
<value>https://s3-ap-southeast-2.amazonaws.com/</value>
<comment>@Invariant</comment></data>
</data>
<data name="cbAmazonS3Endpoint.Items3" xml:space="preserve">
<value>https://s3-eu-west-1.amazonaws.com/</value>
<comment>@Invariant</comment></data>
</data>
<data name="cbAmazonS3Endpoint.Items4" xml:space="preserve">
<value>https://s3-sa-east-1.amazonaws.com/</value>
<comment>@Invariant</comment></data>
</data>
<data name="cbAmazonS3Endpoint.Items5" xml:space="preserve">
<value>https://s3-us-west-1.amazonaws.com/</value>
<comment>@Invariant</comment></data>
</data>
<data name="cbAmazonS3Endpoint.Items6" xml:space="preserve">
<value>https://s3-us-west-2.amazonaws.com/</value>
<comment>@Invariant</comment></data>
</data>
<data name="cbAmazonS3Endpoint.Items7" xml:space="preserve">
<value>https://s3.amazonaws.com/</value>
<comment>@Invariant</comment></data>
</data>
<data name="cbAmazonS3Endpoint.Items8" xml:space="preserve">
<value>https://objects.dreamhost.com/</value>
<comment>@Invariant</comment></data>
</data>
<data name="cbAmazonS3Endpoint.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 128</value>
</data>
@ -4209,20 +4237,20 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>16</value>
</data>
<data name="tpAmazonS3.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
<value>4, 22</value>
</data>
<data name="tpAmazonS3.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpAmazonS3.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
<value>972, 493</value>
</data>
<data name="tpAmazonS3.TabIndex" type="System.Int32, mscorlib">
<value>13</value>
</data>
<data name="tpAmazonS3.Text" xml:space="preserve">
<value>Amazon S3</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpAmazonS3.Name" xml:space="preserve">
<value>tpAmazonS3</value>
</data>
@ -4530,17 +4558,17 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>10</value>
</data>
<data name="tpMega.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
<value>4, 22</value>
</data>
<data name="tpMega.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
<value>972, 493</value>
</data>
<data name="tpMega.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
</data>
<data name="tpMega.Text" xml:space="preserve">
<value>Mega</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpMega.Name" xml:space="preserve">
<value>tpMega</value>
</data>
@ -4848,20 +4876,20 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>10</value>
</data>
<data name="tpOwnCloud.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
<value>4, 22</value>
</data>
<data name="tpOwnCloud.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpOwnCloud.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
<value>972, 493</value>
</data>
<data name="tpOwnCloud.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
</data>
<data name="tpOwnCloud.Text" xml:space="preserve">
<value>ownCloud</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpOwnCloud.Name" xml:space="preserve">
<value>tpOwnCloud</value>
</data>
@ -5061,20 +5089,20 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>6</value>
</data>
<data name="tpMediaFire.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
<value>4, 22</value>
</data>
<data name="tpMediaFire.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpMediaFire.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
<value>972, 493</value>
</data>
<data name="tpMediaFire.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
</data>
<data name="tpMediaFire.Text" xml:space="preserve">
<value>MediaFire</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpMediaFire.Name" xml:space="preserve">
<value>tpMediaFire</value>
</data>
@ -5223,20 +5251,20 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>4</value>
</data>
<data name="tpPushbullet.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
<value>4, 22</value>
</data>
<data name="tpPushbullet.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpPushbullet.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
<value>972, 493</value>
</data>
<data name="tpPushbullet.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
</data>
<data name="tpPushbullet.Text" xml:space="preserve">
<value>Pushbullet</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpPushbullet.Name" xml:space="preserve">
<value>tpPushbullet</value>
</data>
@ -5451,20 +5479,20 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>7</value>
</data>
<data name="tpRapidShare.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
<value>4, 22</value>
</data>
<data name="tpRapidShare.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpRapidShare.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
<value>972, 493</value>
</data>
<data name="tpRapidShare.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="tpRapidShare.Text" xml:space="preserve">
<value>RapidShare</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpRapidShare.Name" xml:space="preserve">
<value>tpRapidShare</value>
</data>
@ -5628,20 +5656,20 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>5</value>
</data>
<data name="tpSendSpace.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
<value>4, 22</value>
</data>
<data name="tpSendSpace.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpSendSpace.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
<value>972, 493</value>
</data>
<data name="tpSendSpace.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="tpSendSpace.Text" xml:space="preserve">
<value>SendSpace</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpSendSpace.Name" xml:space="preserve">
<value>tpSendSpace</value>
</data>
@ -5685,20 +5713,20 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>0</value>
</data>
<data name="tpMediaCrush.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
<value>4, 22</value>
</data>
<data name="tpMediaCrush.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpMediaCrush.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
<value>972, 493</value>
</data>
<data name="tpMediaCrush.TabIndex" type="System.Int32, mscorlib">
<value>18</value>
</data>
<data name="tpMediaCrush.Text" xml:space="preserve">
<value>MediaCrush</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpMediaCrush.Name" xml:space="preserve">
<value>tpMediaCrush</value>
</data>
@ -5871,20 +5899,20 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>5</value>
</data>
<data name="tpGe_tt.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
<value>4, 22</value>
</data>
<data name="tpGe_tt.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpGe_tt.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
<value>972, 493</value>
</data>
<data name="tpGe_tt.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="tpGe_tt.Text" xml:space="preserve">
<value>Ge.tt</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpGe_tt.Name" xml:space="preserve">
<value>tpGe_tt</value>
</data>
@ -6030,20 +6058,20 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>4</value>
</data>
<data name="tpHostr.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
<value>4, 22</value>
</data>
<data name="tpHostr.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpHostr.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
<value>972, 493</value>
</data>
<data name="tpHostr.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="tpHostr.Text" xml:space="preserve">
<value>Hostr</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpHostr.Name" xml:space="preserve">
<value>tpHostr</value>
</data>
@ -6480,20 +6508,20 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<value>3</value>
</data>
<data name="tpMinus.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
<value>4, 22</value>
</data>
<data name="tpMinus.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpMinus.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value>
<value>972, 493</value>
</data>
<data name="tpMinus.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="tpMinus.Text" xml:space="preserve">
<value>Minus</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpMinus.Name" xml:space="preserve">
<value>tpMinus</value>
</data>
@ -6517,7 +6545,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="txtJiraIssuePrefix.Text" xml:space="preserve">
<value>PROJECT-</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;txtJiraIssuePrefix.Name" xml:space="preserve">
<value>txtJiraIssuePrefix</value>
</data>
@ -6601,7 +6629,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="txtJiraHost.Text" xml:space="preserve">
<value>http://</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;txtJiraHost.Name" xml:space="preserve">
<value>txtJiraHost</value>
</data>
@ -6700,7 +6728,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpJira.Text" xml:space="preserve">
<value>Atlassian Jira</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpJira.Name" xml:space="preserve">
<value>tpJira</value>
</data>
@ -7792,7 +7820,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpPastebin.Text" xml:space="preserve">
<value>Pastebin</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpPastebin.Name" xml:space="preserve">
<value>tpPastebin</value>
</data>
@ -7870,7 +7898,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpPaste_ee.Text" xml:space="preserve">
<value>Paste.ee</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpPaste_ee.Name" xml:space="preserve">
<value>tpPaste_ee</value>
</data>
@ -7969,7 +7997,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpGist.Text" xml:space="preserve">
<value>Gist</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpGist.Name" xml:space="preserve">
<value>tpGist</value>
</data>
@ -8077,7 +8105,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpUpaste.Text" xml:space="preserve">
<value>uPaste</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpUpaste.Name" xml:space="preserve">
<value>tpUpaste</value>
</data>
@ -8206,7 +8234,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpHastebin.Text" xml:space="preserve">
<value>Hastebin</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpHastebin.Name" xml:space="preserve">
<value>tpHastebin</value>
</data>
@ -8374,7 +8402,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="chImgurID.Text" xml:space="preserve">
<value>ID</value>
<comment>@Invariant</comment></data>
</data>
<data name="chImgurTitle.Text" xml:space="preserve">
<value>Title</value>
</data>
@ -8503,7 +8531,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpImgur.Text" xml:space="preserve">
<value>Imgur</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpImgur.Name" xml:space="preserve">
<value>tpImgur</value>
</data>
@ -8743,7 +8771,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpImageShack.Text" xml:space="preserve">
<value>ImageShack</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpImageShack.Name" xml:space="preserve">
<value>tpImageShack</value>
</data>
@ -8947,7 +8975,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpTinyPic.Text" xml:space="preserve">
<value>TinyPic</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpTinyPic.Name" xml:space="preserve">
<value>tpTinyPic</value>
</data>
@ -9127,7 +9155,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpFlickr.Text" xml:space="preserve">
<value>Flickr</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpFlickr.Name" xml:space="preserve">
<value>tpFlickr</value>
</data>
@ -9619,7 +9647,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpPhotobucket.Text" xml:space="preserve">
<value>Photobucket</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpPhotobucket.Name" xml:space="preserve">
<value>tpPhotobucket</value>
</data>
@ -9685,7 +9713,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="chPicasaID.Text" xml:space="preserve">
<value>ID</value>
<comment>@Invariant</comment></data>
</data>
<data name="chPicasaID.Width" type="System.Int32, mscorlib">
<value>135</value>
</data>
@ -9787,7 +9815,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpPicasa.Text" xml:space="preserve">
<value>Picasa</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpPicasa.Name" xml:space="preserve">
<value>tpPicasa</value>
</data>
@ -9847,7 +9875,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="lblCheveretoWebsiteTip.Text" xml:space="preserve">
<value>/api/1/upload</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;lblCheveretoWebsiteTip.Name" xml:space="preserve">
<value>lblCheveretoWebsiteTip</value>
</data>
@ -9976,7 +10004,7 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
</data>
<data name="tpChevereto.Text" xml:space="preserve">
<value>Chevereto</value>
<comment>@Invariant</comment></data>
</data>
<data name="&gt;&gt;tpChevereto.Name" xml:space="preserve">
<value>tpChevereto</value>
</data>

View file

@ -124,6 +124,7 @@ public class UploadersConfig : SettingsBase<UploadersConfig>
// OneDrive
public OAuth2Info OneDriveOAuth2Info = null;
public bool OneDriveAutoCreateShareableLink = true;
// Copy

View file

@ -830,7 +830,10 @@ public UploadResult UploadFile(Stream stream, string fileName)
};
break;
case FileDestination.OneDrive:
fileUploader = new OneDrive(Program.UploadersConfig.OneDriveOAuth2Info);
fileUploader = new OneDrive(Program.UploadersConfig.OneDriveOAuth2Info)
{
AutoCreateShareableLink = Program.UploadersConfig.OneDriveAutoCreateShareableLink
};
break;
case FileDestination.GoogleDrive:
fileUploader = new GoogleDrive(Program.UploadersConfig.GoogleDriveOAuth2Info)