From cb49de00d4262bfeb107d232b8deb074887ee7ab Mon Sep 17 00:00:00 2001 From: shomix <100691266+shomix@users.noreply.github.com> Date: Thu, 18 May 2023 10:07:38 +0200 Subject: [PATCH] [storage] Add parallel uploads to the limit usage (#112) --- packages/core/package.json | 2 +- packages/core/src/spheron-api/interfaces.ts | 4 +-- packages/storage/README.md | 2 +- packages/storage/package.json | 4 +-- .../storage/src/bucket-manager/interfaces.ts | 27 ++++++++++++++++++- packages/storage/src/index.ts | 22 ++++++++++++--- 6 files changed, 50 insertions(+), 11 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 98b58102..cba1b983 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@spheron/core", - "version": "1.0.2", + "version": "1.0.3", "description": "Shared core package for all sdk packages", "keywords": [ "Storage", diff --git a/packages/core/src/spheron-api/interfaces.ts b/packages/core/src/spheron-api/interfaces.ts index c7aea73b..08a479ab 100644 --- a/packages/core/src/spheron-api/interfaces.ts +++ b/packages/core/src/spheron-api/interfaces.ts @@ -161,7 +161,6 @@ interface UsageWithLimits { usedBuildExecution?: number; // Seconds usedConcurrentBuild?: number; usedStorageArweave?: number; // Bytes - usedStorageFileCoin?: number; // Seconds usedStorageIPFS?: number; // Bytes usedDeploymentsPerDay?: number; lastDeploymentDate?: Date; @@ -178,7 +177,6 @@ interface UsageWithLimits { buildExecutionLimit?: number; // Seconds concurrentBuildLimit?: number; storageArweaveLimit?: number; // Bytes - storageFileCoinLimit?: number; // Bytes storageIPFSLimit?: number; deploymentsPerDayLimit?: number; domainsLimit?: number; @@ -188,6 +186,8 @@ interface UsageWithLimits { clusterAktLimit?: number; clusterBuildExecutionLimit?: number; passwordProtectionLimit?: number; + usedParallelUploads?: number; + parallelUploadsLimit?: number; } interface UsageWithLimitsWithSkynet extends UsageWithLimits { diff --git a/packages/storage/README.md b/packages/storage/README.md index d50f9a0a..daa33d10 100644 --- a/packages/storage/README.md +++ b/packages/storage/README.md @@ -14,7 +14,7 @@
-
+
diff --git a/packages/storage/package.json b/packages/storage/package.json
index 2f63499e..092fc63b 100644
--- a/packages/storage/package.json
+++ b/packages/storage/package.json
@@ -1,6 +1,6 @@
{
"name": "@spheron/storage",
- "version": "1.0.14",
+ "version": "1.0.15",
"description": "Typescript library for uploading files or directory to IPFS, Filecoin or Arweave via Spheron",
"keywords": [
"Storage",
@@ -35,7 +35,7 @@
"dist/"
],
"dependencies": {
- "@spheron/core": "1.0.2",
+ "@spheron/core": "1.0.3",
"form-data": "^4.0.0",
"multiformats": "^9.9.0"
},
diff --git a/packages/storage/src/bucket-manager/interfaces.ts b/packages/storage/src/bucket-manager/interfaces.ts
index 96e76a5d..5da2e9ac 100644
--- a/packages/storage/src/bucket-manager/interfaces.ts
+++ b/packages/storage/src/bucket-manager/interfaces.ts
@@ -37,4 +37,29 @@ interface Upload {
protocol: string;
}
-export { Bucket, Domain, Upload, BucketStateEnum, UploadStatusEnum };
+interface UsageWithLimits {
+ used: {
+ bandwidth: number; // Bytes
+ storageArweave: number; // Bytes
+ storageIPFS: number; // Bytes
+ domains: number;
+ numberOfRequests: number;
+ parallelUploads: number;
+ };
+ limit: {
+ bandwidth: number; // Bytes
+ storageArweave: number; // Bytes
+ storageIPFS: number; // Bytes
+ domains: number;
+ parallelUploads: number;
+ };
+}
+
+export {
+ Bucket,
+ Domain,
+ Upload,
+ BucketStateEnum,
+ UploadStatusEnum,
+ UsageWithLimits,
+};
diff --git a/packages/storage/src/index.ts b/packages/storage/src/index.ts
index 22a09d8b..93e8aa82 100644
--- a/packages/storage/src/index.ts
+++ b/packages/storage/src/index.ts
@@ -13,10 +13,10 @@ import {
TokenScope,
UploadManager,
UploadResult,
- UsageWithLimits,
} from "@spheron/core";
import { createPayloads } from "./fs-payload-creator";
import { ipfs } from "./ipfs.utils";
+import { UsageWithLimits } from "./bucket-manager/interfaces";
export {
ipfs,
@@ -261,9 +261,23 @@ export class SpheronClient {
"wa-global"
);
- const { usedStorageSkynet, storageSkynetLimit, ...resultWithoutSkynet } =
- usage;
- return resultWithoutSkynet;
+ return {
+ used: {
+ bandwidth: usage.usedBandwidth ?? 0,
+ storageArweave: usage.usedStorageArweave ?? 0,
+ storageIPFS: usage.usedStorageIPFS ?? 0,
+ domains: usage.usedDomains ?? 0,
+ numberOfRequests: usage.usedNumberOfRequests ?? 0,
+ parallelUploads: usage.usedParallelUploads ?? 0,
+ },
+ limit: {
+ bandwidth: usage.bandwidthLimit ?? 0,
+ storageArweave: usage.storageArweaveLimit ?? 0,
+ storageIPFS: usage.storageIPFSLimit ?? 0,
+ domains: usage.domainsLimit ?? 0,
+ parallelUploads: usage.parallelUploadsLimit ?? 0,
+ },
+ };
}
async getTokenScope(): Promise