forked from Kieran/void.cat
Max upload size
This commit is contained in:
parent
d0458d094d
commit
9837d917b9
@ -57,6 +57,8 @@ namespace VoidCat.Controllers
|
|||||||
/// <param name="cli">True if you want to return only the url of the file in the response</param>
|
/// <param name="cli">True if you want to return only the url of the file in the response</param>
|
||||||
/// <returns>Returns <see cref="UploadResult"/></returns>
|
/// <returns>Returns <see cref="UploadResult"/></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
|
[HttpOptions]
|
||||||
|
[HttpHead]
|
||||||
[DisableRequestSizeLimit]
|
[DisableRequestSizeLimit]
|
||||||
[DisableFormValueModelBinding]
|
[DisableFormValueModelBinding]
|
||||||
[Authorize(AuthenticationSchemes = "Bearer,Nostr", Policy = Policies.RequireNostr)]
|
[Authorize(AuthenticationSchemes = "Bearer,Nostr", Policy = Policies.RequireNostr)]
|
||||||
@ -73,6 +75,12 @@ namespace VoidCat.Controllers
|
|||||||
throw new InvalidOperationException("Site is in maintenance mode");
|
throw new InvalidOperationException("Site is in maintenance mode");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var bodyLength = Request.ContentLength ?? 0;
|
||||||
|
if ((ulong)bodyLength >= (_settings.MaxFileSize ?? ulong.MaxValue))
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("File size too large");
|
||||||
|
}
|
||||||
|
|
||||||
var uid = HttpContext.GetUserId();
|
var uid = HttpContext.GetUserId();
|
||||||
var pubkey = HttpContext.GetPubKey();
|
var pubkey = HttpContext.GetPubKey();
|
||||||
if (uid == default && !string.IsNullOrEmpty(pubkey))
|
if (uid == default && !string.IsNullOrEmpty(pubkey))
|
||||||
|
@ -26,6 +26,11 @@ namespace VoidCat.Model
|
|||||||
/// Size in bytes to split uploads into chunks
|
/// Size in bytes to split uploads into chunks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ulong? UploadSegmentSize { get; init; }
|
public ulong? UploadSegmentSize { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Max file size for upload
|
||||||
|
/// </summary>
|
||||||
|
public ulong? MaxFileSize { get; init; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Tor configuration
|
/// Tor configuration
|
||||||
|
@ -50,8 +50,9 @@
|
|||||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
|
||||||
<PackageReference Include="System.Linq.Async" Version="6.0.1" />
|
<PackageReference Include="System.Linq.Async" Version="6.0.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup><!--<Protobuf Include="Services/Lightning/proto/*.proto" GrpcServices="Client" ProtoRoot="Services/Lightning/proto" />-->
|
||||||
<!--<Protobuf Include="Services/Lightning/proto/*.proto" GrpcServices="Client" ProtoRoot="Services/Lightning/proto" />-->
|
|
||||||
|
<Folder Include="wwwroot\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<!-- Don't publish the SPA source files, but do show them in the project files list -->
|
<!-- Don't publish the SPA source files, but do show them in the project files list -->
|
||||||
@ -90,9 +91,6 @@
|
|||||||
</AssemblyAttributes>
|
</AssemblyAttributes>
|
||||||
<Compile Include="$(IntermediateOutputPath)\build_date.cs" />
|
<Compile Include="$(IntermediateOutputPath)\build_date.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Migrations\" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Target Name="GetBuildDate" BeforeTargets="CoreCompile">
|
<Target Name="GetBuildDate" BeforeTargets="CoreCompile">
|
||||||
<WriteCodeFragment Language="C#" OutputFile="$(IntermediateOutputPath)\build_date.cs" AssemblyAttributes="@(AssemblyAttributes)" />
|
<WriteCodeFragment Language="C#" OutputFile="$(IntermediateOutputPath)\build_date.cs" AssemblyAttributes="@(AssemblyAttributes)" />
|
||||||
</Target>
|
</Target>
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
"name": "@void-cat/app",
|
"name": "@void-cat/app",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"proxy": "http://localhost:7195",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@hcaptcha/react-hcaptcha": "^1.1.1",
|
"@hcaptcha/react-hcaptcha": "^1.1.1",
|
||||||
"@reduxjs/toolkit": "^1.7.2",
|
"@reduxjs/toolkit": "^1.7.2",
|
||||||
@ -36,7 +35,7 @@
|
|||||||
"vite-plugin-version-mark": "^0.0.10"
|
"vite-plugin-version-mark": "^0.0.10"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "vite start",
|
"start": "vite",
|
||||||
"build": "vite build"
|
"build": "vite build"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
const { createProxyMiddleware } = require("http-proxy-middleware");
|
|
||||||
const settings = require("../package.json");
|
|
||||||
|
|
||||||
module.exports = function (app) {
|
|
||||||
const proxy = createProxyMiddleware({
|
|
||||||
target: settings.proxy,
|
|
||||||
changeOrigin: true,
|
|
||||||
secure: false,
|
|
||||||
});
|
|
||||||
|
|
||||||
app.use("/admin", proxy);
|
|
||||||
app.use("/d", proxy);
|
|
||||||
app.use("/info", proxy);
|
|
||||||
app.use("/upload", proxy);
|
|
||||||
app.use("/auth", proxy);
|
|
||||||
app.use("/swagger", proxy);
|
|
||||||
app.use("/user", proxy);
|
|
||||||
};
|
|
@ -3274,19 +3274,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@types/babel__core@npm:^7.1.12":
|
|
||||||
version: 7.20.0
|
|
||||||
resolution: "@types/babel__core@npm:7.20.0"
|
|
||||||
dependencies:
|
|
||||||
"@babel/parser": "npm:^7.20.7"
|
|
||||||
"@babel/types": "npm:^7.20.7"
|
|
||||||
"@types/babel__generator": "npm:*"
|
|
||||||
"@types/babel__template": "npm:*"
|
|
||||||
"@types/babel__traverse": "npm:*"
|
|
||||||
checksum: b82e432bfc42075d4f6218e5ed5c4a7cdeb087e0416f969fc65a755c41d129d7e369c93e9a9dc59d43291327aa8d7cd149f3573d1c3b54d0192561d02bb225eb
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@types/babel__core@npm:^7.20.5":
|
"@types/babel__core@npm:^7.20.5":
|
||||||
version: 7.20.5
|
version: 7.20.5
|
||||||
resolution: "@types/babel__core@npm:7.20.5"
|
resolution: "@types/babel__core@npm:7.20.5"
|
||||||
@ -3414,15 +3401,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@types/http-proxy@npm:^1.17.8":
|
|
||||||
version: 1.17.11
|
|
||||||
resolution: "@types/http-proxy@npm:1.17.11"
|
|
||||||
dependencies:
|
|
||||||
"@types/node": "npm:*"
|
|
||||||
checksum: 7cda456611b4adfdd87e4317745af643153d502576fb7095806d5b1b397b9a878b105e14abff9b7ab1d1c71132b61b5fc7052461f766165963950f1b46e18315
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@types/json-schema@npm:^7.0.9":
|
"@types/json-schema@npm:^7.0.9":
|
||||||
version: 7.0.11
|
version: 7.0.11
|
||||||
resolution: "@types/json-schema@npm:7.0.11"
|
resolution: "@types/json-schema@npm:7.0.11"
|
||||||
@ -3458,13 +3436,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@types/preval.macro@npm:^3.0.0":
|
|
||||||
version: 3.0.0
|
|
||||||
resolution: "@types/preval.macro@npm:3.0.0"
|
|
||||||
checksum: 76aa51a31bb4632383763f283297c63f7dc664ea85e637ddd9b8a91c6583e690a0306d021dc7bdce52d1f3898f798cec5bb0ae9ae072b8999f1a79d56991616a
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@types/prop-types@npm:*":
|
"@types/prop-types@npm:*":
|
||||||
version: 15.7.5
|
version: 15.7.5
|
||||||
resolution: "@types/prop-types@npm:15.7.5"
|
resolution: "@types/prop-types@npm:15.7.5"
|
||||||
@ -3735,7 +3706,6 @@ __metadata:
|
|||||||
"@hcaptcha/react-hcaptcha": "npm:^1.1.1"
|
"@hcaptcha/react-hcaptcha": "npm:^1.1.1"
|
||||||
"@reduxjs/toolkit": "npm:^1.7.2"
|
"@reduxjs/toolkit": "npm:^1.7.2"
|
||||||
"@types/node": "npm:^20.5.3"
|
"@types/node": "npm:^20.5.3"
|
||||||
"@types/preval.macro": "npm:^3.0.0"
|
|
||||||
"@types/qrcode.react": "npm:^1.0.2"
|
"@types/qrcode.react": "npm:^1.0.2"
|
||||||
"@types/react": "npm:^18.2.0"
|
"@types/react": "npm:^18.2.0"
|
||||||
"@types/react-dom": "npm:^18.2.1"
|
"@types/react-dom": "npm:^18.2.1"
|
||||||
@ -3746,9 +3716,7 @@ __metadata:
|
|||||||
"@void-cat/api": "npm:^1.0.10"
|
"@void-cat/api": "npm:^1.0.10"
|
||||||
eslint: "npm:^8.47.0"
|
eslint: "npm:^8.47.0"
|
||||||
eslint-config-react-app: "npm:^7.0.1"
|
eslint-config-react-app: "npm:^7.0.1"
|
||||||
http-proxy-middleware: "npm:^2.0.6"
|
|
||||||
moment: "npm:^2.29.4"
|
moment: "npm:^2.29.4"
|
||||||
preval.macro: "npm:^5.0.0"
|
|
||||||
prop-types: "npm:^15.8.1"
|
prop-types: "npm:^15.8.1"
|
||||||
qrcode.react: "npm:^3.1.0"
|
qrcode.react: "npm:^3.1.0"
|
||||||
react: "npm:^18.2.0"
|
react: "npm:^18.2.0"
|
||||||
@ -4024,7 +3992,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"babel-plugin-macros@npm:^3.0.1, babel-plugin-macros@npm:^3.1.0":
|
"babel-plugin-macros@npm:^3.1.0":
|
||||||
version: 3.1.0
|
version: 3.1.0
|
||||||
resolution: "babel-plugin-macros@npm:3.1.0"
|
resolution: "babel-plugin-macros@npm:3.1.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -4107,18 +4075,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"babel-plugin-preval@npm:^5.0.0":
|
|
||||||
version: 5.1.0
|
|
||||||
resolution: "babel-plugin-preval@npm:5.1.0"
|
|
||||||
dependencies:
|
|
||||||
"@babel/runtime": "npm:^7.12.5"
|
|
||||||
"@types/babel__core": "npm:^7.1.12"
|
|
||||||
babel-plugin-macros: "npm:^3.0.1"
|
|
||||||
require-from-string: "npm:^2.0.2"
|
|
||||||
checksum: d4507d1f134a610b8a2d4de911afe147eba7aab782ea34e7b687e99bdfd2e28d2056e16b7fa4b66acb59bcbd681acc40e851a20f03f7be719ee4cc51fc88eee0
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"babel-plugin-transform-react-remove-prop-types@npm:^0.4.24":
|
"babel-plugin-transform-react-remove-prop-types@npm:^0.4.24":
|
||||||
version: 0.4.24
|
version: 0.4.24
|
||||||
resolution: "babel-plugin-transform-react-remove-prop-types@npm:0.4.24"
|
resolution: "babel-plugin-transform-react-remove-prop-types@npm:0.4.24"
|
||||||
@ -5393,7 +5349,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"eventemitter3@npm:^4.0.0, eventemitter3@npm:^4.0.1":
|
"eventemitter3@npm:^4.0.1":
|
||||||
version: 4.0.7
|
version: 4.0.7
|
||||||
resolution: "eventemitter3@npm:4.0.7"
|
resolution: "eventemitter3@npm:4.0.7"
|
||||||
checksum: 8030029382404942c01d0037079f1b1bc8fed524b5849c237b80549b01e2fc49709e1d0c557fa65ca4498fc9e24cff1475ef7b855121fcc15f9d61f93e282346
|
checksum: 8030029382404942c01d0037079f1b1bc8fed524b5849c237b80549b01e2fc49709e1d0c557fa65ca4498fc9e24cff1475ef7b855121fcc15f9d61f93e282346
|
||||||
@ -5524,16 +5480,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"follow-redirects@npm:^1.0.0":
|
|
||||||
version: 1.15.2
|
|
||||||
resolution: "follow-redirects@npm:1.15.2"
|
|
||||||
peerDependenciesMeta:
|
|
||||||
debug:
|
|
||||||
optional: true
|
|
||||||
checksum: 8be0d39919770054812537d376850ccde0b4762b0501c440bd08724971a078123b55f57704f2984e0664fecc0c86adea85add63295804d9dce401cd9604c91d3
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"for-each@npm:^0.3.3":
|
"for-each@npm:^0.3.3":
|
||||||
version: 0.3.3
|
version: 0.3.3
|
||||||
resolution: "for-each@npm:0.3.3"
|
resolution: "for-each@npm:0.3.3"
|
||||||
@ -5922,35 +5868,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"http-proxy-middleware@npm:^2.0.6":
|
|
||||||
version: 2.0.6
|
|
||||||
resolution: "http-proxy-middleware@npm:2.0.6"
|
|
||||||
dependencies:
|
|
||||||
"@types/http-proxy": "npm:^1.17.8"
|
|
||||||
http-proxy: "npm:^1.18.1"
|
|
||||||
is-glob: "npm:^4.0.1"
|
|
||||||
is-plain-obj: "npm:^3.0.0"
|
|
||||||
micromatch: "npm:^4.0.2"
|
|
||||||
peerDependencies:
|
|
||||||
"@types/express": ^4.17.13
|
|
||||||
peerDependenciesMeta:
|
|
||||||
"@types/express":
|
|
||||||
optional: true
|
|
||||||
checksum: 768e7ae5a422bbf4b866b64105b4c2d1f468916b7b0e9c96750551c7732383069b411aa7753eb7b34eab113e4f77fb770122cb7fb9c8ec87d138d5ddaafda891
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"http-proxy@npm:^1.18.1":
|
|
||||||
version: 1.18.1
|
|
||||||
resolution: "http-proxy@npm:1.18.1"
|
|
||||||
dependencies:
|
|
||||||
eventemitter3: "npm:^4.0.0"
|
|
||||||
follow-redirects: "npm:^1.0.0"
|
|
||||||
requires-port: "npm:^1.0.0"
|
|
||||||
checksum: 2489e98aba70adbfd8b9d41ed1ff43528be4598c88616c558b109a09eaffe4bb35e551b6c75ac42ed7d948bb7530a22a2be6ef4f0cecacb5927be139f4274594
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"https-proxy-agent@npm:^7.0.1":
|
"https-proxy-agent@npm:^7.0.1":
|
||||||
version: 7.0.2
|
version: 7.0.2
|
||||||
resolution: "https-proxy-agent@npm:7.0.2"
|
resolution: "https-proxy-agent@npm:7.0.2"
|
||||||
@ -6219,13 +6136,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"is-plain-obj@npm:^3.0.0":
|
|
||||||
version: 3.0.0
|
|
||||||
resolution: "is-plain-obj@npm:3.0.0"
|
|
||||||
checksum: a6ebdf8e12ab73f33530641972a72a4b8aed6df04f762070d823808303e4f76d87d5ea5bd76f96a7bbe83d93f04ac7764429c29413bd9049853a69cb630fb21c
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"is-regex@npm:^1.1.4":
|
"is-regex@npm:^1.1.4":
|
||||||
version: 1.1.4
|
version: 1.1.4
|
||||||
resolution: "is-regex@npm:1.1.4"
|
resolution: "is-regex@npm:1.1.4"
|
||||||
@ -6676,7 +6586,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4":
|
"micromatch@npm:^4.0.4":
|
||||||
version: 4.0.5
|
version: 4.0.5
|
||||||
resolution: "micromatch@npm:4.0.5"
|
resolution: "micromatch@npm:4.0.5"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -7191,15 +7101,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"preval.macro@npm:^5.0.0":
|
|
||||||
version: 5.0.0
|
|
||||||
resolution: "preval.macro@npm:5.0.0"
|
|
||||||
dependencies:
|
|
||||||
babel-plugin-preval: "npm:^5.0.0"
|
|
||||||
checksum: 4e58715a7dacd5999c85f8f930029251921955fb46f981a54848c21a370a73efb1825eb9ab08a32cb3a53978b489c6a55ebc1bbddf6eceaef2aa297e0a007401
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"proc-log@npm:^3.0.0":
|
"proc-log@npm:^3.0.0":
|
||||||
version: 3.0.0
|
version: 3.0.0
|
||||||
resolution: "proc-log@npm:3.0.0"
|
resolution: "proc-log@npm:3.0.0"
|
||||||
@ -7592,13 +7493,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"requires-port@npm:^1.0.0":
|
|
||||||
version: 1.0.0
|
|
||||||
resolution: "requires-port@npm:1.0.0"
|
|
||||||
checksum: 878880ee78ccdce372784f62f52a272048e2d0827c29ae31e7f99da18b62a2b9463ea03a75f277352f4697c100183debb0532371ad515a2d49d4bfe596dd4c20
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"reselect@npm:^4.1.8":
|
"reselect@npm:^4.1.8":
|
||||||
version: 4.1.8
|
version: 4.1.8
|
||||||
resolution: "reselect@npm:4.1.8"
|
resolution: "reselect@npm:4.1.8"
|
||||||
|
Loading…
Reference in New Issue
Block a user