Skip to content

Instantly share code, notes, and snippets.

@xximjasonxx
Last active August 12, 2020 01:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xximjasonxx/4adcb617252de0cf1bb8a43607477bd4 to your computer and use it in GitHub Desktop.
Save xximjasonxx/4adcb617252de0cf1bb8a43607477bd4 to your computer and use it in GitHub Desktop.
Azure Function File Upload
public static class UploadFile
{
[FunctionName("UploadFile")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "file/add")] HttpRequest uploadFile,
[Blob("files", FileAccess.Write, Connection = "StorageAccountConnectionString")] CloudBlobContainer blobContainer,
[Table("metadata", Connection = "TableConnectionString")] CloudTable metadataTable,
ILogger log)
{
var fileName = Guid.NewGuid().ToString();
await blobContainer.CreateIfNotExistsAsync();
var cloudBlockBlob = blobContainer.GetBlockBlobReference(fileName);
await cloudBlockBlob.UploadFromStreamAsync(uploadFile.Body);
await metadataTable.CreateIfNotExistsAsync();
var addOperation = TableOperation.Insert(new FileMetadata
{
RowKey = fileName,
PartitionKey = fileName,
});
await metadataTable.ExecuteAsync(addOperation);
return new CreatedResult(string.Empty, fileName);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment