From f2ab7f2f083049ff5970b05c11d5fabb0ceb5dcd Mon Sep 17 00:00:00 2001 From: Matthew Burnett Date: Fri, 20 Apr 2018 12:59:42 -0400 Subject: [PATCH] Add custom domain support in program Form not done --- .../FileUploaders/GoogleCloudStorage.cs | 20 ++++++++++++++----- ShareX.UploadersLib/UploadersConfig.cs | 3 ++- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/ShareX.UploadersLib/FileUploaders/GoogleCloudStorage.cs b/ShareX.UploadersLib/FileUploaders/GoogleCloudStorage.cs index e8c93a6d8..6db5ad93b 100644 --- a/ShareX.UploadersLib/FileUploaders/GoogleCloudStorage.cs +++ b/ShareX.UploadersLib/FileUploaders/GoogleCloudStorage.cs @@ -43,14 +43,15 @@ public class GoogleCloudStorageNewFileUploaderService : FileUploaderService public override bool CheckConfig(UploadersConfig config) { - return OAuth2Info.CheckOAuth(config.GoogleCloudStorageOAuth2Info); + return OAuth2Info.CheckOAuth(config.GoogleCloudStorageOAuth2Info) && !string.IsNullOrEmpty(config.GoogleCloudStorageBucket); } public override GenericUploader CreateUploader(UploadersConfig config, TaskReferenceHelper taskInfo) { return new GoogleCloudStorage(config.GoogleCloudStorageOAuth2Info) { - bucket = config.GoogleCloudStorageBucket + bucket = config.GoogleCloudStorageBucket, + domain = config.GoogleCloudStorageDomain }; } @@ -103,6 +104,8 @@ public class GoogleCloudStorageResponse } public string bucket { get; set; } + public string path { get; set; } + public string domain { get; set; } public override UploadResult Upload(Stream stream, string fileName) { @@ -110,10 +113,10 @@ public override UploadResult Upload(Stream stream, string fileName) UploadResult result = new UploadResult(); - result.URL = $"https://storage.googleapis.com/{bucket}/{fileName}"; + path = path + "/"; - string uploadurl = $"https://www.googleapis.com/upload/storage/v1/b/{bucket}/o"; - string aclurl = $"https://www.googleapis.com/storage/v1/b/{bucket}/o/{fileName}/acl"; + string uploadurl = $"https://www.googleapis.com/upload/storage/v1/b/{path}{bucket}/o"; + string aclurl = $"https://www.googleapis.com/storage/v1/b/{bucket}/o/{path}{fileName}/acl"; string contentType = Helpers.GetMimeType(fileName); @@ -138,6 +141,13 @@ public override UploadResult Upload(Stream stream, string fileName) SendRequest(HttpMethod.POST, aclurl, requestjson, ContentTypeJSON, headers: googleAuth.GetAuthHeaders()); } + if (string.IsNullOrEmpty(domain)) + { + domain = "storage.googleapis.com"; + } + + result.URL = $"https://{domain}/{bucket}/{path}{fileName}"; + return result; } } diff --git a/ShareX.UploadersLib/UploadersConfig.cs b/ShareX.UploadersLib/UploadersConfig.cs index 36e6259a3..8b0d0c5b5 100644 --- a/ShareX.UploadersLib/UploadersConfig.cs +++ b/ShareX.UploadersLib/UploadersConfig.cs @@ -392,7 +392,8 @@ public class UploadersConfig : SettingsBase #region Google Cloud Storage public OAuth2Info GoogleCloudStorageOAuth2Info = null; - public string GoogleCloudStorageBucket = "cdn.riolu.com"; + public string GoogleCloudStorageBucket = ""; + public string GoogleCloudStorageDomain = ""; #endregion Google Cloud Storage