Write file(s)
This API allows developer to upload a file or update the file by keeping the previous version of the existing file.
Request
POST: {base_url}/apps/:appID/users/:userID/files
appID and userID are path parameters.
Note
Here userID is the unique ID of the user in the application. The user need to be added to the application before adding the files.
Headers
Learn how to pass authentication headers here.
Query Parameters
The API uses form-data for uploading files. Below are examples of how to structure the request when uploading a single file.
| Parameters | Type | Description |
|---|---|---|
files |
array of blobs | The file(s) to be uploaded |
fileName |
string | The absolute path of the file where the file will be stored. |
keepPrevious |
boolean | Set to true to keep the previous version of the file. |
createFolders |
boolean | Set to true to create directories if they don’t exist. |
encryptionType |
int | The encryption type for the file (see encryption types). |
Sample Request
curl --location '{{base_url}}/kapsul/v1/:networkID/files' \
--header 'Authorization: Bearer <DAT Token>' \
--form 'files=@"path_to_your_file"' \
--form 'fileName="path/filename.ext"' \
--form 'keepPrevious="true"' \
--form 'createFolders="true"' \
--form 'encryptionType="0"'
Sample Response
1. When adding a file to Kapsul for the first time.
{
"code": 200,
"requestId": "6f2f3b0e-bc6a-42e9-88ca-b7994c897fd3",
"clientMessage": "file(s) uploaded successfully",
"data": [
{
"active": true,
"enable": true,
"version": 1,
"hash": "bafkreih4joqbifiusp4zjk6ij6jwdiokoxo5mhskjk3z42ybislkofe7ua",
"filesize": 30086,
"replication": 2,
"encryptionKey": "",
"lastUpdated": "2024-09-01T06:00:24.22379836Z",
"directory": "/motto",
"path": "/file.ext",
"nodeAddress": "0x994f5A780B9BBBcdef425EE5905b90Ffd3Ac4f87"
}
]
}
2. When adding a file with same name and keepPrevious is true.
{
"code": 200,
"requestId": "6f2f3b0e-bc6a-42e9-88ca-b7994c897fd3",
"clientMessage": "file(s) uploaded successfully",
"data": [
{
"active": true,
"enable": true,
"version": 1,
"hash": "bafkreih4joqbifiusp4zjk6ij6jwdiokoxo5mhskjk3z42ybislkofe7ua",
"filesize": 30086,
"replication": 2,
"encryptionKey": "",
"lastUpdated": "2024-09-01T06:00:24.22379836Z",
"directory": "/motto",
"path": "/file.png",
"nodeAddress": "0x994f5A780B9BBBcdef425EE5905b90Ffd3Ac4f87"
},
{
"active": true,
"enable": true,
"version": 2,
"hash": "bafkreihq9e84rlop3jvd98ckwioc8a7dmzlkjf5g9p2v7tszucxb2df6ou",
"filesize": 40088,
"replication": 2,
"encryptionKey": "",
"lastUpdated": "2024-09-01T05:58:32.698471076Z",
"directory": "/motto",
"path": "/file.png",
"nodeAddress": "0x994f5A780B9BBBcdef425EE5905b90Ffd3Ac4f87"
}
]
}
Response Parameters
- code: HTTP status code, 200 indicates success.
- requestId: Unique identifier for the request.
- clientMessage: Message confirming the success of the upload.
- data: Array containing details about the uploaded file(s), including:
- active: Indicates if the file is active.
- enable: Indicates if the file is enabled.
- version: The version number of the file.
- hash: The hash of the file.
- filesize: The size of the file in bytes.
- replication: Number of file copies.
- encryptionKey: The key used for encryption (empty if not encrypted).
- lastUpdated: Timestamp of the last update.
- directory: The directory where the file is stored.
- path: The path of the file within the directory.
- nodeAddress: The node address associated with the file.