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 {