Files
toolkit/packages/cache/src/internal/v2/upload/upload-cache.ts
T

26 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-06-10 10:56:20 -07:00
import * as core from '@actions/core'
import {GetCacheBlobUploadURLResponse} from '../../../generated/results/api/v1/blobcache'
2024-06-10 11:01:01 -07:00
import {BlobClient, BlockBlobClient, BlockBlobParallelUploadOptions} from '@azure/storage-blob'
2024-06-10 10:56:20 -07:00
export async function UploadCache(
uploadURL: GetCacheBlobUploadURLResponse,
archivePath: string,
): Promise<{}> {
2024-06-10 12:19:52 -07:00
core.info(`Uploading ${archivePath} to: ${JSON.stringify(uploadURL)}`)
2024-06-10 10:56:20 -07:00
// Specify data transfer options
const uploadOptions: BlockBlobParallelUploadOptions = {
blockSize: 4 * 1024 * 1024, // 4 MiB max block size
concurrency: 2, // maximum number of parallel transfer workers
maxSingleShotSize: 8 * 1024 * 1024, // 8 MiB initial transfer size
};
2024-06-10 11:01:01 -07:00
// const blobClient: BlobClient = new BlobClient(uploadURL.urls[0])
const blobClient: BlobClient = new BlobClient(uploadURL.urls[0].url)
const blockBlobClient: BlockBlobClient = blobClient.getBlockBlobClient()
2024-06-10 10:56:20 -07:00
2024-06-10 12:19:52 -07:00
core.info(`BlobClient: ${JSON.stringify(blobClient)}`)
core.info(`blockBlobClient: ${JSON.stringify(blockBlobClient)}`)
2024-06-10 11:36:37 -07:00
2024-06-10 11:01:01 -07:00
return blockBlobClient.uploadFile(archivePath, uploadOptions);
2024-06-10 10:56:20 -07:00
}