Azurite doesn't support seal append blob
Error Description: Azurite doesn't support seal append blob.
To Reproduce: Please run the demo code as following:
import { BlobServiceClient, StorageSharedKeyCredential } from "@azure/storage-blob";
import { assert } from "chai";
async function main() {
const blobServiceClient= new BlobServiceClient("<Azurite-https-endpoint>",new StorageSharedKeyCredential("<account-name>","<account-key>"));
const containerClient = blobServiceClient.getContainerClient("<container-name>");
await containerClient.create();
const content = "Hello World!";
const appendBlobClient = containerClient.getAppendBlobClient("<blob-name>");
await appendBlobClient.create();
await appendBlobClient.seal();
const properties = await appendBlobClient.getProperties();
assert.deepStrictEqual(properties.isSealed, true);
}
main();
Expected Behavior: Azurite supports seal append blob
@jongio for notification.
The feature is still not supported in Azurite.
We welcome contribution. It would be great if you can raise PR to add it!
Sorry for reviving an old thread but is there any plan to support that at all in the future? This is something my team and I would look forward to. Thanks.
@nickduch
We have a PR to update generated API in Azurite: https://github.com/Azure/Azurite/pull/1847 After the PR is merged, we should have seal append blob API in Azurite code, but not implemented. (code will in this file)
As we still have other features with more customer requests to implement, so we might will take other feature as priority than seal append blob recently.
Azurite welcome contribution! To make this API in Azurite quicker, it would be great if you could raise a PR to implement seal append blob API, after https://github.com/Azure/Azurite/pull/1847 is merged. Feel free to let us know if you have any questions on the implementation.
I was investigating where our code is spending ~30s waiting for something and ended up here:
blobClient.seal();
We are using com.azure:azure-storage-blob:12.29.0 and apparently despite Azurite responding with a 500 response on the seal-requests, the client happily goes into a retry-loop.
2024-12-16 12:28:07 172.19.0.1 - - [16/Dec/2024:11:28:07 +0000] "PUT /devstoreaccount1/notice-80904e16-f9f6-4598-a908-6e1d0e452a8c-20241216t122756/archive.zip?comp=seal HTTP/1.1" 500 -
2024-12-16 12:28:11 172.19.0.1 - - [16/Dec/2024:11:28:11 +0000] "PUT /devstoreaccount1/notice-80904e16-f9f6-4598-a908-6e1d0e452a8c-20241216t122756/archive.zip?comp=seal HTTP/1.1" 500 -
2024-12-16 12:28:23 172.19.0.1 - - [16/Dec/2024:11:28:23 +0000] "PUT /devstoreaccount1/notice-80904e16-f9f6-4598-a908-6e1d0e452a8c-20241216t122756/archive.zip?comp=seal HTTP/1.1" 500 -
As long as seal is not implement, shouldn't the proper response code be a HTTP-501 (not implemented) instead? Maybe then the client no longer deems the request retriable?
I was investigating where our code is spending ~30s waiting for something and ended up here:
blobClient.seal();We are using
com.azure:azure-storage-blob:12.29.0and apparently despite Azurite responding with a 500 response on the seal-requests, the client happily goes into a retry-loop.2024-12-16 12:28:07 172.19.0.1 - - [16/Dec/2024:11:28:07 +0000] "PUT /devstoreaccount1/notice-80904e16-f9f6-4598-a908-6e1d0e452a8c-20241216t122756/archive.zip?comp=seal HTTP/1.1" 500 - 2024-12-16 12:28:11 172.19.0.1 - - [16/Dec/2024:11:28:11 +0000] "PUT /devstoreaccount1/notice-80904e16-f9f6-4598-a908-6e1d0e452a8c-20241216t122756/archive.zip?comp=seal HTTP/1.1" 500 - 2024-12-16 12:28:23 172.19.0.1 - - [16/Dec/2024:11:28:23 +0000] "PUT /devstoreaccount1/notice-80904e16-f9f6-4598-a908-6e1d0e452a8c-20241216t122756/archive.zip?comp=seal HTTP/1.1" 500 -As long as seal is not implement, shouldn't the proper response code be a HTTP-501 (not implemented) instead? Maybe then the client no longer deems the request retriable?
@ralfhergert Thanks for the suggestion! We will evaluate it.
Close as the fix PR is already merged. The fix will be included in the next Azurite release.
Since this issue is closed, does Azurite now supports seal on append blobs with the latest version?
Thanks @nickduch ! Reopen as the seal append blob is still not supported.
I have created a PR that implements the seal endpoint as we need this for our testing. Looking forward to feedback and merging :-)
@blueww is this something you could look at?
the feature is already supported on 3.35.0 with https://github.com/Azure/Azurite/pull/2553