4
4
using System . IO ;
5
5
using System . Linq ;
6
6
using System . Net . Http ;
7
+ using System . Threading ;
7
8
using System . Threading . Tasks ;
8
9
using System . Web ;
9
10
using Newtonsoft . Json ;
@@ -172,14 +173,14 @@ await Helpers.MakeRequest<List<FileObject>>(HttpMethod.Post, $"{Url}/object/list
172
173
/// <param name="inferContentType"></param>
173
174
/// <returns></returns>
174
175
public async Task < string > Upload ( string localFilePath , string supabasePath , FileOptions ? options = null ,
175
- EventHandler < float > ? onProgress = null , bool inferContentType = true )
176
+ EventHandler < float > ? onProgress = null , bool inferContentType = true , CancellationToken cancellationToken = default )
176
177
{
177
178
options ??= new FileOptions ( ) ;
178
179
179
180
if ( inferContentType )
180
181
options . ContentType = MimeMapping . MimeUtility . GetMimeMapping ( localFilePath ) ;
181
182
182
- var result = await UploadOrUpdate ( localFilePath , supabasePath , options , onProgress ) ;
183
+ var result = await UploadOrUpdate ( localFilePath , supabasePath , options , onProgress , cancellationToken ) ;
183
184
return result ;
184
185
}
185
186
@@ -193,14 +194,14 @@ public async Task<string> Upload(string localFilePath, string supabasePath, File
193
194
/// <param name="inferContentType"></param>
194
195
/// <returns></returns>
195
196
public async Task < string > Upload ( byte [ ] data , string supabasePath , FileOptions ? options = null ,
196
- EventHandler < float > ? onProgress = null , bool inferContentType = true )
197
+ EventHandler < float > ? onProgress = null , bool inferContentType = true , CancellationToken cancellationToken = default )
197
198
{
198
199
options ??= new FileOptions ( ) ;
199
200
200
201
if ( inferContentType )
201
202
options . ContentType = MimeMapping . MimeUtility . GetMimeMapping ( supabasePath ) ;
202
203
203
- var result = await UploadOrUpdate ( data , supabasePath , options , onProgress ) ;
204
+ var result = await UploadOrUpdate ( data , supabasePath , options , onProgress , cancellationToken ) ;
204
205
return result ;
205
206
}
206
207
@@ -288,10 +289,10 @@ public async Task<string> UploadToSignedUrl(byte[] data, UploadSignedUrl signedU
288
289
/// <param name="onProgress"></param>
289
290
/// <returns></returns>
290
291
public Task < string > Update ( string localFilePath , string supabasePath , FileOptions ? options = null ,
291
- EventHandler < float > ? onProgress = null )
292
+ EventHandler < float > ? onProgress = null , CancellationToken cancellationToken = default )
292
293
{
293
294
options ??= new FileOptions ( ) ;
294
- return UploadOrUpdate ( localFilePath , supabasePath , options , onProgress ) ;
295
+ return UploadOrUpdate ( localFilePath , supabasePath , options , onProgress , cancellationToken ) ;
295
296
}
296
297
297
298
/// <summary>
@@ -303,10 +304,10 @@ public Task<string> Update(string localFilePath, string supabasePath, FileOption
303
304
/// <param name="onProgress"></param>
304
305
/// <returns></returns>
305
306
public Task < string > Update ( byte [ ] data , string supabasePath , FileOptions ? options = null ,
306
- EventHandler < float > ? onProgress = null )
307
+ EventHandler < float > ? onProgress = null , CancellationToken cancellationToken = default )
307
308
{
308
309
options ??= new FileOptions ( ) ;
309
- return UploadOrUpdate ( data , supabasePath , options , onProgress ) ;
310
+ return UploadOrUpdate ( data , supabasePath , options , onProgress , cancellationToken ) ;
310
311
}
311
312
312
313
/// <summary>
@@ -480,7 +481,7 @@ public async Task<UploadSignedUrl> CreateUploadSignedUrl(string supabasePath)
480
481
}
481
482
482
483
private async Task < string > UploadOrUpdate ( string localPath , string supabasePath , FileOptions options ,
483
- EventHandler < float > ? onProgress = null )
484
+ EventHandler < float > ? onProgress = null , CancellationToken cancellationToken = default )
484
485
{
485
486
Uri uri = new Uri ( $ "{ Url } /object/{ GetFinalPath ( supabasePath ) } ") ;
486
487
@@ -506,7 +507,7 @@ private async Task<string> UploadOrUpdate(string localPath, string supabasePath,
506
507
if ( onProgress != null )
507
508
progress . ProgressChanged += onProgress ;
508
509
509
- await Helpers . HttpUploadClient ! . UploadFileAsync ( uri , localPath , headers , progress ) ;
510
+ await Helpers . HttpUploadClient ! . UploadFileAsync ( uri , localPath , headers , progress , cancellationToken ) ;
510
511
511
512
return GetFinalPath ( supabasePath ) ;
512
513
}
@@ -520,7 +521,7 @@ private static string ParseMetadata(Dictionary<string, string> metadata)
520
521
}
521
522
522
523
private async Task < string > UploadOrUpdate ( byte [ ] data , string supabasePath , FileOptions options ,
523
- EventHandler < float > ? onProgress = null )
524
+ EventHandler < float > ? onProgress = null , CancellationToken cancellationToken = default )
524
525
{
525
526
Uri uri = new Uri ( $ "{ Url } /object/{ GetFinalPath ( supabasePath ) } ") ;
526
527
@@ -546,7 +547,7 @@ private async Task<string> UploadOrUpdate(byte[] data, string supabasePath, File
546
547
if ( onProgress != null )
547
548
progress . ProgressChanged += onProgress ;
548
549
549
- await Helpers . HttpUploadClient ! . UploadBytesAsync ( uri , data , headers , progress ) ;
550
+ await Helpers . HttpUploadClient ! . UploadBytesAsync ( uri , data , headers , progress , cancellationToken ) ;
550
551
551
552
return GetFinalPath ( supabasePath ) ;
552
553
}
0 commit comments