[PERS SDK - v2.3.26](/sdk-reference/readme) / [Exports](/sdk-reference/modules) / FileService

# Class: FileService

File Service - High-level file operations

Provides convenient methods for file upload, signed URLs, and media optimization.

## Table of contents

### Constructors

- [constructor](/sdk-reference/classes/fileservice#constructor)


### Methods

- [getSignedPutUrl](/sdk-reference/classes/fileservice#getsignedputurl)
- [getSignedGetUrl](/sdk-reference/classes/fileservice#getsignedgeturl)
- [getSignedUrl](/sdk-reference/classes/fileservice#getsignedurl)
- [optimizeMedia](/sdk-reference/classes/fileservice#optimizemedia)
- [getFileApi](/sdk-reference/classes/fileservice#getfileapi)


## Constructors

### constructor

• **new FileService**(`apiClient`): [`FileService`](/sdk-reference/classes/fileservice)

#### Parameters

| Name | Type |
|  --- | --- |
| `apiClient` | [`PersApiClient`](/sdk-reference/classes/persapiclient) |


#### Returns

[`FileService`](/sdk-reference/classes/fileservice)

#### Defined in

[file/services/file-service.ts:18](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/file/services/file-service.ts#L18)

## Methods

### getSignedPutUrl

▸ **getSignedPutUrl**(`entityId`, `entityType`, `fileExtension`): `Promise`<`string`>

Get signed PUT URL for file upload

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `entityId` | `string` | Entity ID to associate the file with |
| `entityType` | `FileUploadEntityType` | Type of entity (token, campaign, etc.) |
| `fileExtension` | `string` | File extension (e.g., 'jpg', 'png') |


#### Returns

`Promise`<`string`>

Promise resolving to signed upload URL

#### Defined in

[file/services/file-service.ts:30](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/file/services/file-service.ts#L30)

### getSignedGetUrl

▸ **getSignedGetUrl**(`entityId`, `entityType`, `expireSeconds?`): `Promise`<`string`>

Get signed GET URL for file access

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `entityId` | `string` | Entity ID |
| `entityType` | `FileUploadEntityType` | Type of entity |
| `expireSeconds?` | `number` | Optional expiration time in seconds |


#### Returns

`Promise`<`string`>

Promise resolving to signed access URL

#### Defined in

[file/services/file-service.ts:54](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/file/services/file-service.ts#L54)

### getSignedUrl

▸ **getSignedUrl**(`request`): `Promise`<`string`>

Get signed URL for any file operation

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `request` | [`SignedUrlRequest`](/sdk-reference/interfaces/signedurlrequest) | Signed URL request |


#### Returns

`Promise`<`string`>

Promise resolving to signed URL

#### Defined in

[file/services/file-service.ts:75](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/file/services/file-service.ts#L75)

### optimizeMedia

▸ **optimizeMedia**(`url`, `width?`, `height?`): `Promise`<`string`>

Optimize media from URL

#### Parameters

| Name | Type | Description |
|  --- | --- | --- |
| `url` | `string` | Original file URL |
| `width?` | `number` | Optional target width |
| `height?` | `number` | Optional target height |


#### Returns

`Promise`<`string`>

Promise resolving to optimized file URL

#### Defined in

[file/services/file-service.ts:88](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/file/services/file-service.ts#L88)

### getFileApi

▸ **getFileApi**(): [`FileApi`](/sdk-reference/classes/fileapi)

Get the file API instance for advanced operations

#### Returns

[`FileApi`](/sdk-reference/classes/fileapi)

FileApi instance

#### Defined in

[file/services/file-service.ts:99](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/file/services/file-service.ts#L99)