Compare commits

...
3 Commits
Author SHA1 Message Date
xrain e79ed47d39 fix upload stream data 2022-05-07 23:52:45 +08:00
xrain 6fdb3da059 update minio 2022-05-07 22:56:22 +08:00
xrain 55ea40b757 add string id only 2022-05-07 21:45:12 +08:00
5 changed files with 44 additions and 18 deletions
+9
View File
@@ -10,6 +10,14 @@ namespace SimApi.Communications
public int Id { get; set; }
}
/// <summary>
/// 只有ID的请求(字符串)
/// </summary>
public class SimApiStringIdOnlyRequest
{
public string Id { get; set; }
}
/// <summary>
/// 动态类型单字段请求
/// </summary>
@@ -25,6 +33,7 @@ namespace SimApi.Communications
public class SimApiBasePageRequest
{
public int Page { get; set; }
public int Count { get; set; }
}
}
+16 -13
View File
@@ -14,7 +14,9 @@ namespace SimApi.Helpers
public MinioClient Client => Mc;
private string ServeUrl { get; }
private string Bucket { get; }
private IHttpContextAccessor HttpContextAccessor { get; }
public SimApiStorage(SimApiOptions apiOptions, IHttpContextAccessor httpContextAccessor)
@@ -22,7 +24,7 @@ namespace SimApi.Helpers
var options = apiOptions.SimApiStorageOptions;
HttpContextAccessor = httpContextAccessor;
var useSsl = false;
var endpoint = string.Empty;
string endpoint;
if (options.Endpoint.StartsWith("http://"))
{
endpoint = options.Endpoint.Replace("http://", string.Empty);
@@ -39,19 +41,18 @@ namespace SimApi.Helpers
ServeUrl = options.ServeUrl;
Bucket = options.Bucket;
var mcb = new MinioClient().WithEndpoint(endpoint)
.WithCredentials(options.AccessKey, options.SecretKey);
if (useSsl)
{
Mc = new MinioClient(endpoint, options.AccessKey, options.SecretKey).WithSSL();
}
else
{
Mc = new MinioClient(endpoint, options.AccessKey, options.SecretKey);
mcb = mcb.WithSSL();
}
Mc = mcb.Build();
bool found = Mc.BucketExistsAsync(Bucket).Result;
bool found = Mc.BucketExistsAsync(new BucketExistsArgs().WithBucket(Bucket)).Result;
if (!found)
{
Mc.MakeBucketAsync(Bucket).Wait();
Mc.MakeBucketAsync(new MakeBucketArgs().WithBucket(Bucket)).Wait();
}
}
@@ -59,7 +60,8 @@ namespace SimApi.Helpers
{
try
{
return Mc.PresignedPutObjectAsync(Bucket, path, expire).Result;
return Mc.PresignedPutObjectAsync(new PresignedPutObjectArgs().WithBucket(Bucket)
.WithObject(path).WithExpiry(expire)).Result;
}
catch (MinioException e)
{
@@ -68,11 +70,12 @@ namespace SimApi.Helpers
}
}
public string UploadFile(string path, Stream stream)
public string UploadFile(string path, Stream stream,string contentType = "image/png")
{
try
{
Mc.PutObjectAsync(Bucket, path, stream, stream.Length).Wait();
Mc.PutObjectAsync(new PutObjectArgs().WithBucket(Bucket).WithObject(path).
WithObjectSize(stream.Length).WithStreamData(stream).WithContentType(contentType)).Wait();
return null;
}
catch (MinioException e)
@@ -84,8 +87,8 @@ namespace SimApi.Helpers
public string FullUrl(string path)
{
var httpRequest = HttpContextAccessor.HttpContext.Request;
var url = $"{httpRequest.Scheme}://{httpRequest.Host}";
var httpRequest = HttpContextAccessor.HttpContext?.Request;
var url = $"{httpRequest?.Scheme}://{httpRequest?.Host}";
if (string.IsNullOrEmpty(path))
{
return path;
+15
View File
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using Microsoft.Extensions.Logging;
namespace SimApi.Logger;
public class SimApiLoggerConfiguration
{
public int EventId { get; set; }
public Dictionary<LogLevel, ConsoleColor> LogLevels { get; set; } = new()
{
[LogLevel.Information] = ConsoleColor.Green
};
}
+1 -1
View File
@@ -4,7 +4,7 @@
"anonymousAuthentication": true
},
"profiles": {
"YYApi": {
"SimApi": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
+3 -4
View File
@@ -17,7 +17,6 @@
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition=" '$(RunConfiguration)' == 'YYApi' " />
<ItemGroup>
<Folder Include="Helpers\" />
<Folder Include="Communications\" />
@@ -28,9 +27,9 @@
<Folder Include="Configurations\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Minio" Version="3.1.13" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.2.3" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.2.3" />
<PackageReference Include="Minio" Version="4.0.2" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.3.1" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.3.1" />
</ItemGroup>
<ProjectExtensions>
<MonoDevelop>