mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
Improve Amazon S3 GetIdentifier method
This commit is contained in:
parent
a01ba41084
commit
47a14a6ff9
1 changed files with 35 additions and 3 deletions
|
@ -59,6 +59,8 @@ public override GenericUploader CreateUploader(UploadersConfig config, TaskRefer
|
|||
|
||||
public sealed class AmazonS3 : FileUploader
|
||||
{
|
||||
private const string DefaultRegion = "us-east-1";
|
||||
|
||||
public static List<AmazonS3Region> Regions { get; } = new List<AmazonS3Region>()
|
||||
{
|
||||
new AmazonS3Region("Asia Pacific (Tokyo)", "s3-ap-northeast-1.amazonaws.com", "ap-northeast-1"),
|
||||
|
@ -177,9 +179,39 @@ private string GetIdentifier()
|
|||
return Settings.RegionIdentifier;
|
||||
}
|
||||
|
||||
string hostname = URLHelpers.RemovePrefixes(Settings.RegionHostname);
|
||||
int index = hostname.IndexOf('.');
|
||||
return hostname.Substring(0, index);
|
||||
string url = Settings.RegionHostname;
|
||||
|
||||
int delimIndex = url.IndexOf("//", StringComparison.Ordinal);
|
||||
if (delimIndex >= 0)
|
||||
{
|
||||
url = url.Substring(delimIndex + 2);
|
||||
}
|
||||
|
||||
if (url.EndsWith("/", StringComparison.Ordinal))
|
||||
{
|
||||
url = url.Substring(0, url.Length - 1);
|
||||
}
|
||||
|
||||
int awsIndex = url.IndexOf(".amazonaws.com", StringComparison.Ordinal);
|
||||
if (awsIndex < 0)
|
||||
{
|
||||
return DefaultRegion;
|
||||
}
|
||||
|
||||
string serviceAndRegion = url.Substring(0, awsIndex);
|
||||
|
||||
if (serviceAndRegion.StartsWith("s3-", StringComparison.Ordinal))
|
||||
{
|
||||
serviceAndRegion = "s3." + serviceAndRegion.Substring(3);
|
||||
}
|
||||
|
||||
int separatorIndex = serviceAndRegion.LastIndexOf('.');
|
||||
if (separatorIndex == -1)
|
||||
{
|
||||
return DefaultRegion;
|
||||
}
|
||||
|
||||
return serviceAndRegion.Substring(separatorIndex + 1);
|
||||
}
|
||||
|
||||
private string GetUploadPath(string fileName)
|
||||
|
|
Loading…
Reference in a new issue