Skip to content

Commit 9b4e542

Browse files
Add support for AutoUploadParams in UploadLarge
1 parent 5d6e5c9 commit 9b4e542

File tree

4 files changed

+64
-0
lines changed

4 files changed

+64
-0
lines changed

CloudinaryDotNet.IntegrationTests/UploadApi/UploadMethodsTest.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -575,6 +575,25 @@ public void TestUploadLarge()
575575
Assert.AreEqual(fileLength, result.Bytes, result.Error?.Message);
576576
}
577577

578+
[Test, RetryWithDelay]
579+
public async Task TestUploadLargeAutoFilesAsync()
580+
{
581+
// support asynchronous uploading large raw files
582+
var largeFilePath = m_testLargeImagePath;
583+
int largeFileLength = (int)new FileInfo(largeFilePath).Length;
584+
585+
var uploadParams = new AutoUploadParams()
586+
{
587+
File = new FileDescription(largeFilePath),
588+
Tags = m_apiTag
589+
};
590+
591+
var result = await m_cloudinary.UploadLargeAsync(uploadParams, 5 * 1024 * 1024);
592+
593+
AssertUploadLarge(result, largeFileLength);
594+
595+
Assert.AreEqual("image", result.ResourceType);
596+
}
578597
/// <summary>
579598
/// Test access control rules
580599
/// </summary>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
namespace CloudinaryDotNet.Actions
2+
{
3+
/// <summary>
4+
/// Parameters of video file uploading.
5+
/// </summary>
6+
public class AutoUploadParams : RawUploadParams
7+
{
8+
/// <summary>
9+
/// Gets get the type of auto asset for upload.
10+
/// </summary>
11+
public override ResourceType ResourceType => ResourceType.Auto;
12+
}
13+
}

CloudinaryDotNet/Actions/BaseResult.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ public enum ResourceType
5757
/// </summary>
5858
[EnumMember(Value = "video")]
5959
Video,
60+
61+
/// <summary>
62+
/// Auto upload format
63+
/// </summary>
64+
[EnumMember(Value = "auto")]
65+
Auto,
6066
}
6167

6268
/// <summary>

CloudinaryDotNet/Cloudinary.UploadApi.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,32 @@ public VideoUploadResult UploadLarge(VideoUploadParams parameters, int bufferSiz
255255
return UploadLarge<VideoUploadResult>(parameters, bufferSize);
256256
}
257257

258+
/// <summary>
259+
/// Uploads large file to Cloudinary by dividing it to chunks asynchronously.
260+
/// </summary>
261+
/// <param name="parameters">Parameters of file uploading.</param>
262+
/// <param name="bufferSize">Chunk (buffer) size (20 MB by default).</param>
263+
/// <param name="cancellationToken">(Optional) Cancellation token.</param>
264+
/// <returns>Parsed result of uploading.</returns>
265+
public Task<RawUploadResult> UploadLargeAsync(
266+
AutoUploadParams parameters,
267+
int bufferSize = DEFAULT_CHUNK_SIZE,
268+
CancellationToken? cancellationToken = null)
269+
{
270+
return UploadLargeAsync<RawUploadResult>(parameters, bufferSize, cancellationToken);
271+
}
272+
273+
/// <summary>
274+
/// Uploads large file to Cloudinary by dividing it to chunks.
275+
/// </summary>
276+
/// <param name="parameters">Parameters of file uploading.</param>
277+
/// <param name="bufferSize">Chunk (buffer) size (20 MB by default).</param>
278+
/// <returns>Parsed result of uploading.</returns>
279+
public RawUploadResult UploadLarge(AutoUploadParams parameters, int bufferSize = DEFAULT_CHUNK_SIZE)
280+
{
281+
return UploadLarge<RawUploadResult>(parameters, bufferSize);
282+
}
283+
258284
/// <summary>
259285
/// Uploads large resources to Cloudinary by dividing it to chunks.
260286
/// </summary>

0 commit comments

Comments
 (0)