A resposta simples para sua pergunta é: você está com falta de -H "x-ms-blob-type: BlockBlob"
.
Mas o seu SAS Token também pode ser inválido depois de corrigir o cabeçalho, você está tentando fazer o upload de um arquivo usando um token SAS que não tem acesso ao Container e pode ter restrições de IP.
#!/bin/bashDATE_NOW=$(date-Ru|sed's/\+0000/GMT/')AZ_VERSION="2018-03-28"
AZ_BLOB_URL="https://xxxxxx.blob.core.windows.net"
AZ_BLOB_CONTAINER="test"
AZ_BLOB_TARGET="${AZ_BLOB_URL}/${AZ_BLOB_CONTAINER}/"
AZ_SAS_TOKEN="?sv=2017-11-09&ss=b&srt=sco&sp=rwlac&se=2018-11-11T05:03:03Z&st=2018-11-10T21:03:03Z&spr=https&sig=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%3D"
curl -v -X PUT -H "Content-Type: application/octet-stream" -H "x-ms-date: ${DATE_NOW}" -H "x-ms-version: ${AZ_VERSION}" -H "x-ms-blob-type: BlockBlob" --data-binary "/temp/test.log" "${AZ_BLOB_TARGET}test.log${AZ_SAS_TOKEN}"
Espero que isso ajude.