From 70466ce109b6eb670e392356a5193f2089973929 Mon Sep 17 00:00:00 2001 From: sfali Date: Thu, 29 Aug 2024 06:10:59 -0400 Subject: [PATCH] Headers for page blob update #3253 1. Rename file write header 2. Added header for page blob for future implementation --- .../azure/storage/StorageHeaders.scala | 20 +++++++++---------- .../azure/storage/headers/headers.scala | 2 ++ .../alpakka/azure/storage/package.scala | 1 + 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/azure-storage/src/main/scala/akka/stream/alpakka/azure/storage/StorageHeaders.scala b/azure-storage/src/main/scala/akka/stream/alpakka/azure/storage/StorageHeaders.scala index 1be2054589..d9e2a745fc 100644 --- a/azure-storage/src/main/scala/akka/stream/alpakka/azure/storage/StorageHeaders.scala +++ b/azure-storage/src/main/scala/akka/stream/alpakka/azure/storage/StorageHeaders.scala @@ -18,7 +18,7 @@ private[storage] class StorageHeaders private (val contentLengthHeader: Option[H val blobTypeHeader: Option[HttpHeader] = None, val leaseIdHeader: Option[HttpHeader] = None, val fileWriteTypeHeader: Option[HttpHeader] = None, - val fileTypeHeader: Option[HttpHeader] = None, + val rangeWriteTypeHeader: Option[HttpHeader] = None, val fileMaxContentLengthHeader: Option[HttpHeader] = None, val pageBlobContentLengthHeader: Option[HttpHeader] = None, val pageBlobSequenceNumberHeader: Option[HttpHeader] = None) { @@ -30,7 +30,7 @@ private[storage] class StorageHeaders private (val contentLengthHeader: Option[H blobTypeHeader ++ leaseIdHeader ++ fileWriteTypeHeader ++ - fileTypeHeader ++ + rangeWriteTypeHeader ++ fileMaxContentLengthHeader ++ pageBlobContentLengthHeader ++ pageBlobSequenceNumberHeader).toSeq @@ -53,8 +53,8 @@ private[storage] class StorageHeaders private (val contentLengthHeader: Option[H private[storage] def withLeaseIdHeader(leaseId: Option[String]): StorageHeaders = copy(leaseIdHeader = leaseId.map(value => RawHeader(LeaseIdHeaderKey, value))) - private[storage] def withFileWriteTypeHeader(fileWriteTypeHeader: RangeWriteTypeHeader): StorageHeaders = - copy(fileWriteTypeHeader = Some(fileWriteTypeHeader.header)) + private[storage] def withRangeWriteTypeHeader(fileWriteTypeHeader: RangeWriteTypeHeader): StorageHeaders = + copy(rangeWriteTypeHeader = Some(fileWriteTypeHeader.header)) private[storage] def withFileTypeHeader(): StorageHeaders = copy(fileTypeHeader = Some(RawHeader(FileTypeHeaderKey, "file"))) @@ -76,8 +76,8 @@ private[storage] class StorageHeaders private (val contentLengthHeader: Option[H rangeHeader: Option[HttpHeader] = rangeHeader, blobTypeHeader: Option[HttpHeader] = blobTypeHeader, leaseIdHeader: Option[HttpHeader] = leaseIdHeader, - fileWriteTypeHeader: Option[HttpHeader] = fileWriteTypeHeader, - fileTypeHeader: Option[HttpHeader] = fileTypeHeader, + rangeWriteTypeHeader: Option[HttpHeader] = fileWriteTypeHeader, + fileTypeHeader: Option[HttpHeader] = rangeWriteTypeHeader, fileMaxContentLengthHeader: Option[HttpHeader] = fileMaxContentLengthHeader, pageBlobContentLengthHeader: Option[HttpHeader] = pageBlobContentLengthHeader, pageBlobSequenceNumberHeader: Option[HttpHeader] = pageBlobSequenceNumberHeader) = @@ -87,8 +87,8 @@ private[storage] class StorageHeaders private (val contentLengthHeader: Option[H rangeHeader = rangeHeader, blobTypeHeader = blobTypeHeader, leaseIdHeader = leaseIdHeader, - fileWriteTypeHeader = fileWriteTypeHeader, - fileTypeHeader = fileTypeHeader, + fileWriteTypeHeader = rangeWriteTypeHeader, + rangeWriteTypeHeader = fileTypeHeader, fileMaxContentLengthHeader = fileMaxContentLengthHeader, pageBlobContentLengthHeader = pageBlobContentLengthHeader, pageBlobSequenceNumberHeader = pageBlobSequenceNumberHeader @@ -102,7 +102,7 @@ private[storage] class StorageHeaders private (val contentLengthHeader: Option[H | blobTypeHeader=${blobTypeHeader.map(_.value()).getOrElse("None")}, | leaseIdHeader=${leaseIdHeader.map(_.value()).getOrElse("None")}, | fileWriteTypeHeader=${fileWriteTypeHeader.map(_.value()).getOrElse("None")}, - | fileTypeHeader=${fileTypeHeader.map(_.value()).getOrElse("None")}, + | fileTypeHeader=${rangeWriteTypeHeader.map(_.value()).getOrElse("None")}, | fileMaxContentLengthHeader=${fileMaxContentLengthHeader.map(_.value()).getOrElse("None")}, | pageBlobContentLengthHeader=${pageBlobContentLengthHeader.map(_.value()).getOrElse("None")}, | pageBlobSequenceNumberHeader=${pageBlobSequenceNumberHeader.map(_.value()).getOrElse("None")} @@ -131,7 +131,7 @@ private[storage] class StorageHeaders private (val contentLengthHeader: Option[H blobTypeHeader, leaseIdHeader, fileWriteTypeHeader, - fileTypeHeader, + rangeWriteTypeHeader, fileMaxContentLengthHeader, pageBlobContentLengthHeader, pageBlobSequenceNumberHeader diff --git a/azure-storage/src/main/scala/akka/stream/alpakka/azure/storage/headers/headers.scala b/azure-storage/src/main/scala/akka/stream/alpakka/azure/storage/headers/headers.scala index 1a199fd396..23a0f9fbef 100644 --- a/azure-storage/src/main/scala/akka/stream/alpakka/azure/storage/headers/headers.scala +++ b/azure-storage/src/main/scala/akka/stream/alpakka/azure/storage/headers/headers.scala @@ -48,4 +48,6 @@ private[storage] case class RangeWriteTypeHeader(headerName: String, writeType: object RangeWriteTypeHeader { private[storage] val UpdateFileHeader = new RangeWriteTypeHeader(FileWriteTypeHeaderKey, "update") private[storage] val ClearFileHeader = new RangeWriteTypeHeader(FileWriteTypeHeaderKey, "clear") + private[storage] val UpdatePageHeader = new RangeWriteTypeHeader(PageWriteTypeHeaderKey, "update") + private[storage] val ClearPageHeader = new RangeWriteTypeHeader(PageWriteTypeHeaderKey, "clear") } diff --git a/azure-storage/src/main/scala/akka/stream/alpakka/azure/storage/package.scala b/azure-storage/src/main/scala/akka/stream/alpakka/azure/storage/package.scala index 0595bacf3a..a1f7c2088a 100644 --- a/azure-storage/src/main/scala/akka/stream/alpakka/azure/storage/package.scala +++ b/azure-storage/src/main/scala/akka/stream/alpakka/azure/storage/package.scala @@ -19,6 +19,7 @@ package object storage { private[storage] val BlobTypeHeaderKey = "x-ms-blob-type" private[storage] val LeaseIdHeaderKey = "x-ms-lease-id" private[storage] val FileWriteTypeHeaderKey = "x-ms-write" + private[storage] val PageWriteTypeHeaderKey = "x-ms-page-write" private[storage] val XMsContentLengthHeaderKey = "x-ms-content-length" private[storage] val FileTypeHeaderKey = "x-ms-type" private[storage] val PageBlobContentLengthHeaderKey = "x-ms-blob-content-length"