We'll be completing standard maintenance for our Single Sign-On system on November 30th 6pm Pacific Time for approximately one hour. During this time My Alteryx and sign-in functionality to all My Alteryx programs (Licensing Portal, Community, Beta Program, Case Portal, and others) may be inaccessible. Thank you for your patience.
Free Trial

ディスカッション - 日本語

答えを見つけ、質問し、Alteryx の専門知識を共有してください。

Azure Blob Storageにダウンロードツールでファイルアップロードしようとしたらハマった件

gawa
ボリード

Azure Data Lake Storage Gen2にcsvをアップロードするWFを作ったときに丸二日ハマったので、こちらで共有します。

 

事象

Microsoftの公式ドキュメントに従ってURIおよびヘッダを作成してダウンロードツールを使ったが、”必須のヘッダーがついてません”というエラーが出た。具体的になんのヘッダが足りてないかが、応答結果に書いておらず、ハマってしまった。

 

解決方法

ヘッダに”Transfer-Encoding”を追加。値は空欄にする。どうやらAlteryxでサイレントでTransfer-Encodingヘッダを追加して値をchunkedに設定しているらしく、それが原因とのこと。なので、値を空欄で上書きする。

以下の記事を参考。

https://community.alteryx.com/t5/Alteryx-Designer-Discussions/Azure-Blob-Storage-REST-API-Alteryx-si...

 

その他参考情報

私の環境では共有アカウントキーを使いました。URIと明示的に指定したヘッダは以下

URI: https://{storagename}.blob.core.windows.net/{containername}/{filename}{SAS Query}

Header:

  x-ms-blob-type:   BlockBlob

  Content-Type:   application/octet-stream

  Transfer-Encoding:   空欄にする

  Content-Length:  ファイルサイズ(byte)

 

※Content-Lengthヘッダでファイルサイズ指定が必須で、これも地味に面倒だった。Blobフィールドのファイルサイズをフィールドサマリーツール等で取得しようとしたが、できず。結局、以下のようにした。

csvファイルをブロブ変換ツールで16進数(HEX)に変換➡フォーミュラツールで16進数データのLengthを計算し2で割る(Byte相当長さになる)➡この値をContent-Lengthヘッダの値に設定

 

0件の返信0