2024-06-13 03:16:59 -07:00
|
|
|
import * as core from '@actions/core'
|
|
|
|
|
import {
|
2024-09-24 03:17:44 -07:00
|
|
|
BlobClient,
|
2024-11-24 18:44:39 +00:00
|
|
|
BlobUploadCommonResponse,
|
2024-09-24 03:17:44 -07:00
|
|
|
BlockBlobClient,
|
2024-06-13 03:16:59 -07:00
|
|
|
BlockBlobParallelUploadOptions
|
|
|
|
|
} from '@azure/storage-blob'
|
2024-11-28 03:53:34 -08:00
|
|
|
import {InvalidResponseError} from './shared/errors'
|
2024-11-28 07:22:01 -08:00
|
|
|
import {UploadOptions} from '../options'
|
2024-06-13 03:16:59 -07:00
|
|
|
|
2024-11-28 03:53:34 -08:00
|
|
|
export async function uploadCacheArchiveSDK(
|
|
|
|
|
signedUploadURL: string,
|
2024-11-28 07:22:01 -08:00
|
|
|
archivePath: string,
|
|
|
|
|
options?: UploadOptions
|
2024-11-28 03:53:34 -08:00
|
|
|
): Promise<BlobUploadCommonResponse> {
|
2024-06-13 03:16:59 -07:00
|
|
|
// Specify data transfer options
|
|
|
|
|
const uploadOptions: BlockBlobParallelUploadOptions = {
|
2024-11-28 07:22:01 -08:00
|
|
|
blockSize: options?.uploadChunkSize,
|
|
|
|
|
concurrency: options?.uploadConcurrency, // maximum number of parallel transfer workers
|
|
|
|
|
maxSingleShotSize: 128 * 1024 * 1024 // 128 MiB initial transfer size
|
2024-11-14 03:22:03 -08:00
|
|
|
}
|
2024-06-13 03:16:59 -07:00
|
|
|
|
2024-10-21 05:21:32 -07:00
|
|
|
const blobClient: BlobClient = new BlobClient(signedUploadURL)
|
2024-06-13 03:16:59 -07:00
|
|
|
const blockBlobClient: BlockBlobClient = blobClient.getBlockBlobClient()
|
|
|
|
|
|
2024-11-14 04:47:27 -08:00
|
|
|
core.debug(
|
|
|
|
|
`BlobClient: ${blobClient.name}:${blobClient.accountName}:${blobClient.containerName}`
|
|
|
|
|
)
|
2024-06-13 03:16:59 -07:00
|
|
|
|
2024-11-26 23:05:11 +00:00
|
|
|
const resp = await blockBlobClient.uploadFile(archivePath, uploadOptions)
|
|
|
|
|
|
|
|
|
|
if (resp._response.status >= 400) {
|
|
|
|
|
throw new InvalidResponseError(
|
2024-11-27 01:45:46 +00:00
|
|
|
`Upload failed with status code ${resp._response.status}`
|
2024-11-26 23:05:11 +00:00
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return resp
|
2024-11-14 03:22:03 -08:00
|
|
|
}
|