void doNamedBlobPutGetHeadDeleteTest(Account account, Container container) throws Exception {
    // Test second container, test get and delete
    String accountName = account.getName();
    String containerName = container.getName();
    String blobName = "zzzz" + TestUtils.getRandomString(10);
    HttpHeaders headers = new DefaultHttpHeaders();
    String contentType = "application/octet-stream";
    String ownerId = "namedBlobTest";
    headers.add(RestUtils.Headers.USER_META_DATA_HEADER_PREFIX + "key1", "value1");
    headers.add(RestUtils.Headers.USER_META_DATA_HEADER_PREFIX + "key2", "value2");
    setAmbryHeadersForPut(headers, TTL_SECS, false, accountName, contentType, ownerId, null, null);
    ByteBuffer content = ByteBuffer.wrap(TestUtils.getRandomBytes(100));
    String blobId = putNamedBlobAndVerify(headers, content, 100, accountName, containerName, blobName);

    headers.add(RestUtils.Headers.BLOB_SIZE, content.capacity());
    headers.add(RestUtils.Headers.LIFE_VERSION, "0");
    headers.add(TARGET_ACCOUNT_NAME, accountName);
    headers.add(RestUtils.Headers.TARGET_CONTAINER_NAME, containerName);
    // This is the blob id for the given blob name, we should be able to do all get operations on this blob id.
    doVariousGetAndVerify(blobId, headers, false, content, 100, accountName, containerName, null, container);

    String fakeBlobId = buildUriForNamedBlob(accountName, containerName, blobName);
    // check GET, HEAD, DELETE
    doVariousGetAndVerify(fakeBlobId, headers, false, content, 100, accountName, containerName, null, container);
    updateBlobTtlAndVerify(fakeBlobId, headers, false, accountName, containerName, null, container);
    deleteBlobAndVerify(fakeBlobId);

    // check GET after DELETE
    verifyOperationsAfterDelete(fakeBlobId, headers, false, accountName, containerName, content, null, true, container);
    verifyOperationsAfterDelete(blobId, headers, false, accountName, containerName, content, null, true, container);
  }
Utility to test named blob PUT, GET, HEAD and DELETE operations
@param account the {@link Account} to use in post headers.
@param container the {@link Container} to use in post headers.
@throws Exception
ambry-frontend/src/integration-test/java/com/github/ambry/frontend/FrontendIntegrationTestBase.java