Skip to content

Commit 07a06b5

Browse files
claudiamurialdoBeta Bot
authored andcommitted
Cherry pick branch 'genexuslabs:fix/crop-scale-signed-url-filename' into beta
1 parent a18f110 commit 07a06b5

2 files changed

Lines changed: 24 additions & 2 deletions

File tree

dotnet/src/dotnetframework/GxClasses/Core/GXUtilsCommon.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6195,7 +6195,7 @@ public static string Save(Image bitmap, string imageFile, ImageFormat format)
61956195
ms.Position = 0;
61966196
try
61976197
{
6198-
if ((imageFile.StartsWith("http://") || imageFile.StartsWith("https://")) && ServiceFactory.GetExternalProvider() == null)
6198+
if (imageFile.StartsWith("http://") || imageFile.StartsWith("https://"))
61996199
{
62006200
Uri uri = new Uri(imageFile);
62016201
imageFile = Path.GetFileName(uri.AbsolutePath);

dotnet/test/DotNetUnitTest/ImageUtils/ImageUtilTest.cs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,31 @@ public void TestImageFileSize()
117117
{
118118
string fileName = Initialize();
119119
long fileSize = GxImageUtil.GetFileSize(fileName);
120-
120+
121121
Assert.Equal(113974, fileSize);
122122

123123
}
124+
125+
[Fact]
126+
public void TestImageSaveFromSignedUrlDoesNotEmbedQueryString()
127+
{
128+
string signedUrl = "https://bucket.s3.amazonaws.com/folder/bird-thumbnail.jpg?X-Amz-Expires=86400&X-Amz-Signature=abc123def456&X-Amz-Algorithm=AWS4-HMAC-SHA256";
129+
130+
string destinationPath;
131+
using (System.Drawing.Image image = System.Drawing.Image.FromFile(IMAGE_FILE_PATH))
132+
{
133+
destinationPath = GxImageUtil.Save(image, signedUrl, System.Drawing.Imaging.ImageFormat.Jpeg);
134+
}
135+
136+
Assert.False(string.IsNullOrEmpty(destinationPath));
137+
string destinationFileName = Path.GetFileName(destinationPath);
138+
Assert.DoesNotContain("?", destinationFileName);
139+
Assert.DoesNotContain("%3F", destinationFileName);
140+
Assert.DoesNotContain("X-Amz-Expires", destinationFileName);
141+
Assert.DoesNotContain("X-Amz-Signature", destinationFileName);
142+
143+
Assert.Equal(IMAGE_HEIGHT, GxImageUtil.GetImageHeight(destinationPath));
144+
Assert.Equal(IMAGE_WIDTH, GxImageUtil.GetImageWidth(destinationPath));
145+
}
124146
}
125147
}

0 commit comments

Comments
 (0)