From 9d7152b5ca085c70e9b0d94adb6f5f9ff8d6f127 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Mon, 9 Jan 2023 00:05:38 +0100 Subject: feat: init --- BlobBin/BlobBin.csproj | 21 +++++++++ BlobBin/Dockerfile | 20 +++++++++ BlobBin/Program.cs | 46 +++++++++++++++++++ BlobBin/Properties/launchSettings.json | 15 +++++++ BlobBin/appsettings.Development.json | 8 ++++ BlobBin/appsettings.json | 9 ++++ BlobBin/wwwroot/index.html | 80 ++++++++++++++++++++++++++++++++++ 7 files changed, 199 insertions(+) create mode 100644 BlobBin/BlobBin.csproj create mode 100644 BlobBin/Dockerfile create mode 100644 BlobBin/Program.cs create mode 100644 BlobBin/Properties/launchSettings.json create mode 100644 BlobBin/appsettings.Development.json create mode 100644 BlobBin/appsettings.json create mode 100644 BlobBin/wwwroot/index.html (limited to 'BlobBin') diff --git a/BlobBin/BlobBin.csproj b/BlobBin/BlobBin.csproj new file mode 100644 index 0000000..cd8d47d --- /dev/null +++ b/BlobBin/BlobBin.csproj @@ -0,0 +1,21 @@ + + + + net7.0 + enable + enable + Linux + + + + + + + + + + .dockerignore + + + + diff --git a/BlobBin/Dockerfile b/BlobBin/Dockerfile new file mode 100644 index 0000000..9b1f38e --- /dev/null +++ b/BlobBin/Dockerfile @@ -0,0 +1,20 @@ +FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build +WORKDIR /src +COPY ["BlobBin/BlobBin.csproj", "BlobBin/"] +RUN dotnet restore "BlobBin/BlobBin.csproj" +COPY . . +WORKDIR "/src/BlobBin" +RUN dotnet build "BlobBin.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "BlobBin.csproj" -c Release -o /app/publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "BlobBin.dll"] diff --git a/BlobBin/Program.cs b/BlobBin/Program.cs new file mode 100644 index 0000000..085bd6e --- /dev/null +++ b/BlobBin/Program.cs @@ -0,0 +1,46 @@ +var builder = WebApplication.CreateBuilder(args); + +var app = builder.Build(); + +app.UseFileServer(); +app.UseStatusCodePages(); +app.MapPost("/upload", Upload); +app.MapPost("/text", UploadText); +app.MapGet("/b/{id}", GetBlob); +app.Run(); + +IResult Upload(HttpContext context) { + var request = new UploadRequest() { + Singleton = context.Request.Form["singleton"] == "on", + File = context.Request.Form.Files.FirstOrDefault(), + Password = context.Request.Form["password"], + AutoDeleteAfter = context.Request.Form["autoDeleteAfter"] + }; + return Results.Ok(); +} + +IResult UploadText(PasteRequest request) { + return Results.Ok(); +} + +IResult GetBlob(string id) { + return Results.Ok(); +} + +class BlobBase +{ + public string Password { get; set; } + public bool Singleton { get; set; } + public string AutoDeleteAfter { get; set; } +} + +class PasteRequest : BlobBase +{ + public string Text { get; set; } + public string Mime { get; set; } +} + +class UploadRequest : BlobBase +{ + public IFormFile? File { get; set; } +} \ No newline at end of file diff --git a/BlobBin/Properties/launchSettings.json b/BlobBin/Properties/launchSettings.json new file mode 100644 index 0000000..e19510b --- /dev/null +++ b/BlobBin/Properties/launchSettings.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "launchUrl": "", + "applicationUrl": "http://localhost:5033", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/BlobBin/appsettings.Development.json b/BlobBin/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/BlobBin/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/BlobBin/appsettings.json b/BlobBin/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/BlobBin/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/BlobBin/wwwroot/index.html b/BlobBin/wwwroot/index.html new file mode 100644 index 0000000..f252fe3 --- /dev/null +++ b/BlobBin/wwwroot/index.html @@ -0,0 +1,80 @@ + + + + + + Blobbin + + +

Blobbin

+

This is a web service you can upload files and texts to.

+
+
+ Upload a file +
+ + + + + + + +
+
+
+ Upload some text +
+ + + + + + + + + +
+
+
+ + \ No newline at end of file -- cgit v1.3