curlを使用してNextcloudにWebDAVアップロードする際、リクエストヘッダーに「X-Hash」を付与することで、レスポンスにハッシュ値を含めることができます。
手元のファイルとハッシュ値を比較すれば、ファイル転送の整合性を確認できます。
確認方法
検証環境: Nextcloud 31
curlリクエスト時に「X-Hash: md5」ヘッダーを付与してアップロードすると、レスポンスヘッダーでハッシュ値を返すようになります。
以下の例では、X-Hash: md5 を指定して、abc.pdf というファイルを Nextcloud へアップロードしています。
$ curl -k -u "{USERID}:{PASSWORD}" -H "X-Hash: md5" -v -T abc.pdf \
"https://{FQDN}/remote.php/dav/files/{USERID}/abc.pdf"
-- レスポンス途中省略 --
< X-Hash-MD5: 6bba93ada9db2223b5bc3d8c03dc8743
レスポンスヘッダー「X-Hash-MD5」にハッシュ値が返されます。
手元のファイルのMD5と一致すれば、転送が正常に完了したことを確認できます。
$ md5sum abc.pdf
6bba93ada9db2223b5bc3d8c03dc8743 abc.pdf
X-Hashヘッダーの仕様
X-Hashヘッダーの値には、md5, sha1, sha256 が指定可能です。
Nextcloud は次のいずれかの名前のレスポンスヘッダーでハッシュ値を返します。
X-Hash-MD5, X-Hash-SHA1, X-Hash-SHA256
| 指定値 | レスポンスヘッダー |
|---|---|
| md5 | X-Hash-MD5 |
| sha1 | X-Hash-SHA1 |
| sha256 | X-Hash-SHA256 |
詳細は公式ドキュメントを参照してください。
https://docs.nextcloud.com/server/stable/developer_manual/client_apis/WebDAV/basic.html#special-headers
以上、現場からお届けしました。
