in packages/forge-viewmodels-netcore-aws/Controllers/OSSController.cs [110:139]
public async Task<dynamic> UploadObject([FromForm]UploadFile input)
{
// save the file on the server
var fileSavePath = Path.Combine(_env.ContentRootPath, input.fileToUpload.FileName);
using (var stream = new FileStream(fileSavePath, FileMode.Create))
{
await input.fileToUpload.CopyToAsync(stream);
}
// get the bucket...
dynamic oauth = await OAuthController.GetInternalAsync();
ObjectsApi objects = new ObjectsApi();
objects.Configuration.AccessToken = oauth.access_token;
// upload the file/object, which will create a new object
dynamic uploadedObj;
using (StreamReader streamReader = new StreamReader(fileSavePath))
{
uploadedObj = await objects.UploadObjectAsync(input.bucketKey,
input.fileToUpload.FileName, (int)streamReader.BaseStream.Length, streamReader.BaseStream,
"application/octet-stream");
}
// cleanup
System.IO.File.Delete(fileSavePath);
return uploadedObj;
}