public async Task AddObjectToUploadQueueAsync(string bucketName, string key, string accessGrant, Stream stream, string identifier, CustomMetadata customMetadata) { await InitAsync().ConfigureAwait(false); var entry = new UploadQueueEntry(); entry.AccessGrant = accessGrant; entry.Identifier = identifier; entry.BucketName = bucketName; entry.Key = key; entry.TotalBytes = (int)stream.Length; entry.BytesCompleted = 0; if (customMetadata != null) { entry.CustomMetadataJson = JsonSerializer.Serialize(customMetadata); } var entryData = new UploadQueueEntryData(); entryData.Bytes = new byte[stream.Length]; stream.Read(entryData.Bytes, 0, (int)stream.Length); await _connection.RunInTransactionAsync((SQLiteConnection transaction) => { transaction.Insert(entry); entryData.UploadQueueEntryId = entry.Id; transaction.Insert(entryData); }); ProcessQueueInBackground(); UploadQueueChangedEvent?.Invoke(QueueChangeType.EntryAdded, entry); }
public async Task AddObjectToUploadQueueAsync(string bucketName, string key, string accessGrant, Stream stream, string identifier) { await InitAsync(); var entry = new UploadQueueEntry(); entry.AccessGrant = accessGrant; entry.Identifier = identifier; entry.BucketName = bucketName; entry.Key = key; entry.TotalBytes = (int)stream.Length; entry.BytesCompleted = 0; await _connection.InsertAsync(entry); var entryData = new UploadQueueEntryData(); entryData.UploadQueueEntryId = entry.Id; entryData.Bytes = new byte[stream.Length]; var read = stream.Read(entryData.Bytes, 0, (int)stream.Length); await _connection.InsertAsync(entryData); ProcessQueueInBackground(); UploadQueueChangedEvent?.Invoke(QueueChangeType.EntryAdded, entry); }