diff --git a/sdk/storage/storage-file-share/CHANGELOG.md b/sdk/storage/storage-file-share/CHANGELOG.md index a5c0cd5ed944..ffef8916ac37 100644 --- a/sdk/storage/storage-file-share/CHANGELOG.md +++ b/sdk/storage/storage-file-share/CHANGELOG.md @@ -4,9 +4,8 @@ ### Features Added -### Breaking Changes - -### Bugs Fixed +- Added support for service version 2021-12-02. +- Added support for invalid XML characters in file and directory names for ShareDirectoryClient.listFilesAndDirectories(), .listHandles(), and ShareFileClient.listHandles(). ### Other Changes diff --git a/sdk/storage/storage-file-share/recordings/browsers/directoryclient/recording_listfilesanddirectories__with_invalid_char.json b/sdk/storage/storage-file-share/recordings/browsers/directoryclient/recording_listfilesanddirectories__with_invalid_char.json new file mode 100644 index 000000000000..78bce817540e --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/directoryclient/recording_listfilesanddirectories__with_invalid_char.json @@ -0,0 +1,460 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "etag": "\"0x8DB0847B3F65F9D\"", + "last-modified": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "d2f752b8-8a1b-4d5c-934a-280254901eb4", + "x-ms-request-id": "4656dc60-d01a-0043-1b30-3aa7a2000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir167569082581300115", + "query": { + "restype": "directory" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "etag": "\"0x8DB0847B3FC9C4B\"", + "last-modified": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "2f65e701-addf-4ad0-bd39-48d2dd074b5c", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2023-02-06T13:40:25.8434123Z", + "x-ms-file-creation-time": "2023-02-06T13:40:25.8434123Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2023-02-06T13:40:25.8434123Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "9212185477508673717*1658283376881248060", + "x-ms-request-id": "4656dc63-d01a-0043-1d30-3aa7a2000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303", + "query": { + "restype": "directory" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "etag": "\"0x8DB0847B3FF8214\"", + "last-modified": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "fdca07f7-a064-4765-a9bd-6731e39d1aaf", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2023-02-06T13:40:25.8624020Z", + "x-ms-file-creation-time": "2023-02-06T13:40:25.8624020Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2023-02-06T13:40:25.8624020Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "9212185477508673717*1658283376881248060", + "x-ms-request-id": "4656dc66-d01a-0043-1f30-3aa7a2000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303/dir%EF%BF%BE0167569082585804736", + "query": { + "restype": "directory" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "etag": "\"0x8DB0847B401CBB1\"", + "last-modified": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "644cb451-5fab-47c9-9869-c52938ff776a", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2023-02-06T13:40:25.8773937Z", + "x-ms-file-creation-time": "2023-02-06T13:40:25.8773937Z", + "x-ms-file-id": "16140971433240035328", + "x-ms-file-last-write-time": "2023-02-06T13:40:25.8773937Z", + "x-ms-file-parent-id": "11529285414812647424", + "x-ms-file-permission-key": "9212185477508673717*1658283376881248060", + "x-ms-request-id": "4656dc68-d01a-0043-2130-3aa7a2000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303/dir%EF%BF%BE1167569082587604658", + "query": { + "restype": "directory" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "etag": "\"0x8DB0847B4046367\"", + "last-modified": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "de63a4ce-c2a0-4da8-94e9-d5db0f98703f", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2023-02-06T13:40:25.8943847Z", + "x-ms-file-creation-time": "2023-02-06T13:40:25.8943847Z", + "x-ms-file-id": "10376363910205800448", + "x-ms-file-last-write-time": "2023-02-06T13:40:25.8943847Z", + "x-ms-file-parent-id": "11529285414812647424", + "x-ms-file-permission-key": "9212185477508673717*1658283376881248060", + "x-ms-request-id": "4656dc6a-d01a-0043-2330-3aa7a2000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303/dir%EF%BF%BE2167569082589108104", + "query": { + "restype": "directory" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "etag": "\"0x8DB0847B406FB27\"", + "last-modified": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "2eac19a4-b42d-4619-a81e-ad7a2b5b762d", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2023-02-06T13:40:25.9113767Z", + "x-ms-file-creation-time": "2023-02-06T13:40:25.9113767Z", + "x-ms-file-id": "14988049928633188352", + "x-ms-file-last-write-time": "2023-02-06T13:40:25.9113767Z", + "x-ms-file-parent-id": "11529285414812647424", + "x-ms-file-permission-key": "9212185477508673717*1658283376881248060", + "x-ms-request-id": "4656dc6c-d01a-0043-2530-3aa7a2000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303/file%EF%BF%BE0167569082590808961", + "query": {}, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "etag": "\"0x8DB0847B409E0E3\"", + "last-modified": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "bd4eeded-9118-44f4-a9d9-438348d08bce", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2023-02-06T13:40:25.9303651Z", + "x-ms-file-creation-time": "2023-02-06T13:40:25.9303651Z", + "x-ms-file-id": "12682206919419494400", + "x-ms-file-last-write-time": "2023-02-06T13:40:25.9303651Z", + "x-ms-file-parent-id": "11529285414812647424", + "x-ms-file-permission-key": "13809038870468939698*1658283376881248060", + "x-ms-request-id": "4656dc6e-d01a-0043-2730-3aa7a2000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303/file%EF%BF%BE1167569082592707285", + "query": {}, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "etag": "\"0x8DB0847B40C2A89\"", + "last-modified": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "50eea863-5e9e-4afd-80cb-71fb39d701be", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2023-02-06T13:40:25.9453577Z", + "x-ms-file-creation-time": "2023-02-06T13:40:25.9453577Z", + "x-ms-file-id": "17293892937846882304", + "x-ms-file-last-write-time": "2023-02-06T13:40:25.9453577Z", + "x-ms-file-parent-id": "11529285414812647424", + "x-ms-file-permission-key": "13809038870468939698*1658283376881248060", + "x-ms-request-id": "4656dc70-d01a-0043-2930-3aa7a2000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303/file%EF%BF%BE2167569082594209898", + "query": {}, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "etag": "\"0x8DB0847B40E9B2F\"", + "last-modified": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "a28af494-4ff8-4a98-9669-e2d5b56e3ae3", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2023-02-06T13:40:25.9613487Z", + "x-ms-file-creation-time": "2023-02-06T13:40:25.9613487Z", + "x-ms-file-id": "9799903157902376960", + "x-ms-file-last-write-time": "2023-02-06T13:40:25.9613487Z", + "x-ms-file-parent-id": "11529285414812647424", + "x-ms-file-permission-key": "13809038870468939698*1658283376881248060", + "x-ms-request-id": "4656dc72-d01a-0043-2b30-3aa7a2000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303", + "query": { + "comp": "list", + "restype": "directory", + "include": "Timestamps,Etag,Attributes,PermissionKey" + }, + "requestBody": null, + "status": 200, + "response": "11529285414812647424dir%EF%BF%BE0167569082585804736161409714332400353282023-02-06T13:40:25.8773937Z2023-02-06T13:40:25.8773937Z2023-02-06T13:40:25.8773937Z2023-02-06T13:40:25.8773937ZMon, 06 Feb 2023 13:40:25 GMT\"0x8DB0847B401CBB1\"Directory9212185477508673717*1658283376881248060dir%EF%BF%BE1167569082587604658103763639102058004482023-02-06T13:40:25.8943847Z2023-02-06T13:40:25.8943847Z2023-02-06T13:40:25.8943847Z2023-02-06T13:40:25.8943847ZMon, 06 Feb 2023 13:40:25 GMT\"0x8DB0847B4046367\"Directory9212185477508673717*1658283376881248060dir%EF%BF%BE2167569082589108104149880499286331883522023-02-06T13:40:25.9113767Z2023-02-06T13:40:25.9113767Z2023-02-06T13:40:25.9113767Z2023-02-06T13:40:25.9113767ZMon, 06 Feb 2023 13:40:25 GMT\"0x8DB0847B406FB27\"Directory9212185477508673717*1658283376881248060file%EF%BF%BE01675690825908089611268220691941949440010242023-02-06T13:40:25.9303651Z2023-02-06T13:40:25.9303651Z2023-02-06T13:40:25.9303651Z2023-02-06T13:40:25.9303651ZMon, 06 Feb 2023 13:40:25 GMT\"0x8DB0847B409E0E3\"Archive13809038870468939698*1658283376881248060file%EF%BF%BE11675690825927072851729389293784688230410242023-02-06T13:40:25.9453577Z2023-02-06T13:40:25.9453577Z2023-02-06T13:40:25.9453577Z2023-02-06T13:40:25.9453577ZMon, 06 Feb 2023 13:40:25 GMT\"0x8DB0847B40C2A89\"Archive13809038870468939698*1658283376881248060file%EF%BF%BE2167569082594209898979990315790237696010242023-02-06T13:40:25.9613487Z2023-02-06T13:40:25.9613487Z2023-02-06T13:40:25.9613487Z2023-02-06T13:40:25.9613487ZMon, 06 Feb 2023 13:40:25 GMT\"0x8DB0847B40E9B2F\"Archive13809038870468939698*1658283376881248060", + "responseHeaders": { + "content-type": "application/xml", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "transfer-encoding": "chunked", + "x-ms-client-request-id": "4344fd85-e605-4929-81e0-92c34178a578", + "x-ms-request-id": "4656dc74-d01a-0043-2d30-3aa7a2000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303", + "query": { + "comp": "list", + "prefix": "dir￾", + "restype": "directory", + "include": "Timestamps,Etag,Attributes,PermissionKey" + }, + "requestBody": null, + "status": 200, + "response": "dir%EF%BF%BE11529285414812647424dir%EF%BF%BE0167569082585804736161409714332400353282023-02-06T13:40:25.8773937Z2023-02-06T13:40:25.8773937Z2023-02-06T13:40:25.8773937Z2023-02-06T13:40:25.8773937ZMon, 06 Feb 2023 13:40:25 GMT\"0x8DB0847B401CBB1\"Directory9212185477508673717*1658283376881248060dir%EF%BF%BE1167569082587604658103763639102058004482023-02-06T13:40:25.8943847Z2023-02-06T13:40:25.8943847Z2023-02-06T13:40:25.8943847Z2023-02-06T13:40:25.8943847ZMon, 06 Feb 2023 13:40:25 GMT\"0x8DB0847B4046367\"Directory9212185477508673717*1658283376881248060dir%EF%BF%BE2167569082589108104149880499286331883522023-02-06T13:40:25.9113767Z2023-02-06T13:40:25.9113767Z2023-02-06T13:40:25.9113767Z2023-02-06T13:40:25.9113767ZMon, 06 Feb 2023 13:40:25 GMT\"0x8DB0847B406FB27\"Directory9212185477508673717*1658283376881248060", + "responseHeaders": { + "content-type": "application/xml", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "transfer-encoding": "chunked", + "x-ms-client-request-id": "d6542046-b87b-464e-a546-1c2d9c25d068", + "x-ms-request-id": "4656dc79-d01a-0043-3030-3aa7a2000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303", + "query": { + "comp": "list", + "prefix": "file￾", + "restype": "directory", + "include": "Timestamps,Etag,Attributes,PermissionKey" + }, + "requestBody": null, + "status": 200, + "response": "file%EF%BF%BE11529285414812647424file%EF%BF%BE01675690825908089611268220691941949440010242023-02-06T13:40:25.9303651Z2023-02-06T13:40:25.9303651Z2023-02-06T13:40:25.9303651Z2023-02-06T13:40:25.9303651ZMon, 06 Feb 2023 13:40:25 GMT\"0x8DB0847B409E0E3\"Archive13809038870468939698*1658283376881248060file%EF%BF%BE11675690825927072851729389293784688230410242023-02-06T13:40:25.9453577Z2023-02-06T13:40:25.9453577Z2023-02-06T13:40:25.9453577Z2023-02-06T13:40:25.9453577ZMon, 06 Feb 2023 13:40:25 GMT\"0x8DB0847B40C2A89\"Archive13809038870468939698*1658283376881248060file%EF%BF%BE2167569082594209898979990315790237696010242023-02-06T13:40:25.9613487Z2023-02-06T13:40:25.9613487Z2023-02-06T13:40:25.9613487Z2023-02-06T13:40:25.9613487ZMon, 06 Feb 2023 13:40:25 GMT\"0x8DB0847B40E9B2F\"Archive13809038870468939698*1658283376881248060", + "responseHeaders": { + "content-type": "application/xml", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "transfer-encoding": "chunked", + "x-ms-client-request-id": "5c99468b-3870-410c-8728-ff6fd7ea095e", + "x-ms-request-id": "4656dc7b-d01a-0043-3230-3aa7a2000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303/file%EF%BF%BE0167569082590808961", + "query": {}, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "73ec0081-9510-43a7-a777-6ba19077a16f", + "x-ms-request-id": "4656dc7d-d01a-0043-3430-3aa7a2000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303/file%EF%BF%BE1167569082592707285", + "query": {}, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "d8bb0382-735d-4e0c-b8eb-bccb7f0095cc", + "x-ms-request-id": "4656dc80-d01a-0043-3730-3aa7a2000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303/file%EF%BF%BE2167569082594209898", + "query": {}, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "8d7dcf87-f2d8-4277-815b-85f276520ad5", + "x-ms-request-id": "4656dc82-d01a-0043-3930-3aa7a2000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303/dir%EF%BF%BE0167569082585804736", + "query": { + "restype": "directory" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "25ec1225-90de-417d-ab7a-bb502ab95cc9", + "x-ms-request-id": "4656dc84-d01a-0043-3b30-3aa7a2000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303/dir%EF%BF%BE1167569082587604658", + "query": { + "restype": "directory" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "1b316a73-2adc-4800-9015-3177561c46ed", + "x-ms-request-id": "4656dc86-d01a-0043-3d30-3aa7a2000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303/dir%EF%BF%BE2167569082589108104", + "query": { + "restype": "directory" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "db512f55-643d-4fef-9277-1e03e777a4c0", + "x-ms-request-id": "4656dc88-d01a-0043-3f30-3aa7a2000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026/dir%EF%BF%BE167569082584204303", + "query": { + "restype": "directory" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "24c3a082-c2ef-4ee3-9780-205ebd816e43", + "x-ms-request-id": "4656dc8a-d01a-0043-4130-3aa7a2000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share167569082541901026", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 13:40:25 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "e927244e-dc5e-4d79-a8f9-2dfb6837a188", + "x-ms-request-id": "4656dc8c-d01a-0043-4330-3aa7a2000000", + "x-ms-version": "2021-12-02" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share167569082541901026", + "dir": "dir167569082581300115", + "dir￾": "dir￾167569082584204303", + "dir￾0": "dir￾0167569082585804736", + "dir￾1": "dir￾1167569082587604658", + "dir￾2": "dir￾2167569082589108104", + "file￾0": "file￾0167569082590808961", + "file￾1": "file￾1167569082592707285", + "file￾2": "file￾2167569082594209898" + }, + "newDate": {} + }, + "hash": "e5d3cbc4015a2f00998c72fc6bfcb62a" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/directoryclient/recording_listhandles_for_directory_with_invalid_char_should_work.json b/sdk/storage/storage-file-share/recordings/browsers/directoryclient/recording_listhandles_for_directory_with_invalid_char_should_work.json new file mode 100644 index 000000000000..dbd6aa14bf6e --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/directoryclient/recording_listhandles_for_directory_with_invalid_char_should_work.json @@ -0,0 +1,126 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569200217605047", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 14:00:02 GMT", + "etag": "\"0x8DB084A71342D00\"", + "last-modified": "Mon, 06 Feb 2023 14:00:02 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "7e588e38-8f04-4233-9e45-8758d8495293", + "x-ms-request-id": "30838675-801a-0036-1433-3a2019000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569200217605047/dir167569200229600411", + "query": { + "restype": "directory" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 14:00:02 GMT", + "etag": "\"0x8DB084A7137F400\"", + "last-modified": "Mon, 06 Feb 2023 14:00:02 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "840c061c-61f9-486b-bd91-29a180be03c5", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2023-02-06T14:00:02.3151616Z", + "x-ms-file-creation-time": "2023-02-06T14:00:02.3151616Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2023-02-06T14:00:02.3151616Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "9212185477508673717*1658283376881248060", + "x-ms-request-id": "30838678-801a-0036-1633-3a2019000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569200217605047/dir%EF%BF%BE167569200231909213", + "query": { + "restype": "directory" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 14:00:02 GMT", + "etag": "\"0x8DB084A713AB2BE\"", + "last-modified": "Mon, 06 Feb 2023 14:00:02 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "626523a6-4cd5-40e6-9a7d-01a4e913a727", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2023-02-06T14:00:02.3331518Z", + "x-ms-file-creation-time": "2023-02-06T14:00:02.3331518Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2023-02-06T14:00:02.3331518Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "9212185477508673717*1658283376881248060", + "x-ms-request-id": "3083867a-801a-0036-1833-3a2019000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share167569200217605047/dir%EF%BF%BE167569200231909213", + "query": { + "comp": "listhandles" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-type": "application/xml", + "date": "Mon, 06 Feb 2023 14:00:02 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "transfer-encoding": "chunked", + "x-ms-client-request-id": "c9a45544-0c9d-409c-af07-6be2ef208640", + "x-ms-request-id": "3083867c-801a-0036-1a33-3a2019000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share167569200217605047", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 14:00:02 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "f993ba61-c83a-48c8-a6c1-21c3bf79944f", + "x-ms-request-id": "3083867e-801a-0036-1c33-3a2019000000", + "x-ms-version": "2021-12-02" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share167569200217605047", + "dir": "dir167569200229600411", + "dir￾": "dir￾167569200231909213" + }, + "newDate": {} + }, + "hash": "9a3311a03d3e10383af42b2cde295d11" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/browsers/fileclient/recording_listhandles_for_file_with_invalid_char_should_work.json b/sdk/storage/storage-file-share/recordings/browsers/fileclient/recording_listhandles_for_file_with_invalid_char_should_work.json new file mode 100644 index 000000000000..bd8e3a86b179 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/browsers/fileclient/recording_listhandles_for_file_with_invalid_char_should_work.json @@ -0,0 +1,125 @@ +{ + "recordings": [ + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569200237501977", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 14:00:02 GMT", + "etag": "\"0x8DB084A714345F2\"", + "last-modified": "Mon, 06 Feb 2023 14:00:02 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "73e0945e-c9db-40fe-baa5-e9203d734407", + "x-ms-request-id": "30838680-801a-0036-1e33-3a2019000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569200237501977/dir167569200239707803", + "query": { + "restype": "directory" + }, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 14:00:02 GMT", + "etag": "\"0x8DB084A71470D19\"", + "last-modified": "Mon, 06 Feb 2023 14:00:02 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "f53c5ba4-ed03-4e80-9daa-94963d84fd32", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2023-02-06T14:00:02.4141081Z", + "x-ms-file-creation-time": "2023-02-06T14:00:02.4141081Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2023-02-06T14:00:02.4141081Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "9212185477508673717*1658283376881248060", + "x-ms-request-id": "30838683-801a-0036-2033-3a2019000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "PUT", + "url": "https://fakestorageaccount.file.core.windows.net/share167569200237501977/file%EF%BF%BE167569200241708959", + "query": {}, + "requestBody": null, + "status": 201, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 14:00:02 GMT", + "etag": "\"0x8DB084A7149F2E2\"", + "last-modified": "Mon, 06 Feb 2023 14:00:02 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "d5ce828e-f946-4b4b-a145-03b7fcfa4b17", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2023-02-06T14:00:02.4330978Z", + "x-ms-file-creation-time": "2023-02-06T14:00:02.4330978Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2023-02-06T14:00:02.4330978Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "13809038870468939698*1658283376881248060", + "x-ms-request-id": "30838685-801a-0036-2233-3a2019000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "GET", + "url": "https://fakestorageaccount.file.core.windows.net/share167569200237501977/file%EF%BF%BE167569200241708959", + "query": { + "comp": "listhandles" + }, + "requestBody": null, + "status": 200, + "response": "", + "responseHeaders": { + "content-type": "application/xml", + "date": "Mon, 06 Feb 2023 14:00:02 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "transfer-encoding": "chunked", + "x-ms-client-request-id": "5dca5ee0-9310-4879-953a-9dfea2bebfaf", + "x-ms-request-id": "30838687-801a-0036-2433-3a2019000000", + "x-ms-version": "2021-12-02" + } + }, + { + "method": "DELETE", + "url": "https://fakestorageaccount.file.core.windows.net/share167569200237501977", + "query": { + "restype": "share" + }, + "requestBody": null, + "status": 202, + "response": "", + "responseHeaders": { + "content-length": "0", + "date": "Mon, 06 Feb 2023 14:00:02 GMT", + "server": "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-client-request-id": "d9a03f23-5041-4183-a305-c5636126192f", + "x-ms-request-id": "30838689-801a-0036-2633-3a2019000000", + "x-ms-version": "2021-12-02" + } + } + ], + "uniqueTestInfo": { + "uniqueName": { + "share": "share167569200237501977", + "dir": "dir167569200239707803", + "file": "file167569200241605955", + "file￾": "file￾167569200241708959" + }, + "newDate": {} + }, + "hash": "6b7f3584a4ae0792b69333e602a45441" +} \ No newline at end of file diff --git a/sdk/storage/storage-file-share/recordings/node/directoryclient/recording_listfilesanddirectories__with_all_attributes.js b/sdk/storage/storage-file-share/recordings/node/directoryclient/recording_listfilesanddirectories__with_all_attributes.js index a640467e7bde..ae30e87620d4 100644 --- a/sdk/storage/storage-file-share/recordings/node/directoryclient/recording_listfilesanddirectories__with_all_attributes.js +++ b/sdk/storage/storage-file-share/recordings/node/directoryclient/recording_listfilesanddirectories__with_all_attributes.js @@ -1,59 +1,57 @@ let nock = require('nock'); -module.exports.hash = "0ba5d11d96baf3c058812eb3399db78b"; +module.exports.hash = "6d46174a2d93c2dd4e45919c7b9e5a19"; -module.exports.testInfo = {"uniqueName":{"share":"share162544901424303651","dir":"dir162544901554302397","dir0":"dir0162544901674306002","dir1":"dir1162544901762104700","dir2":"dir2162544901879908426","file0":"file0162544901999203768","file1":"file1162544902118808840","file2":"file2162544902239106310"},"newDate":{}} +module.exports.testInfo = {"uniqueName":{"share":"share167566673899109627","dir":"dir167566673963409154","dir0":"dir0167566673966804575","dir1":"dir1167566673968408551","dir2":"dir2167566673969806061","file0":"file0167566673971408633","file1":"file1167566673972907464","file2":"file2167566673974309764"},"newDate":{}} nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .put('/share162544901424303651') + .put('/share167566673899109627') .query(true) .reply(201, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Last-Modified', - 'Mon, 05 Jul 2021 01:36:55 GMT', + 'Mon, 06 Feb 2023 06:58:59 GMT', 'ETag', - '"0x8D93F555F9EBEAC"', + '"0x8DB080F9F740071"', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - 'd1550721-001a-0007-5c3e-71dd0f000000', + '93b391a6-b01a-00b6-68f8-3983b3000000', 'x-ms-client-request-id', - 'aad2a6a2-594f-4035-80a7-51655f24e0c8', + 'ef5519ad-a881-4283-838d-975ecda560e6', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'Date', - 'Mon, 05 Jul 2021 01:36:55 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .put('/share162544901424303651/dir162544901554302397') + .put('/share167566673899109627/dir167566673963409154') .query(true) .reply(201, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Last-Modified', - 'Mon, 05 Jul 2021 01:36:57 GMT', + 'Mon, 06 Feb 2023 06:58:59 GMT', 'ETag', - '"0x8D93F55605808BB"', + '"0x8DB080F9F80864F"', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - '58794bb4-d01a-0012-783e-71af7f000000', + '93b391ae-b01a-00b6-69f8-3983b3000000', 'x-ms-client-request-id', - 'e6f56cf9-7236-41ab-91a1-18939ffb0c18', + '99aef8f3-e353-43b3-a86a-b077ce7bf727', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'x-ms-file-change-time', - '2021-07-05T01:36:57.0788027Z', + '2023-02-06T06:58:59.6589135Z', 'x-ms-file-last-write-time', - '2021-07-05T01:36:57.0788027Z', + '2023-02-06T06:58:59.6589135Z', 'x-ms-file-creation-time', - '2021-07-05T01:36:57.0788027Z', + '2023-02-06T06:58:59.6589135Z', 'x-ms-file-permission-key', - '7735077018765312711*253227986890839374', + '9212185477508673717*1658283376881248060', 'x-ms-file-attributes', 'Directory', 'x-ms-file-id', @@ -63,37 +61,35 @@ nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParam 'x-ms-request-server-encrypted', 'true', 'Date', - 'Mon, 05 Jul 2021 01:36:56 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .put('/share162544901424303651/dir162544901554302397/dir0162544901674306002') + .put('/share167566673899109627/dir167566673963409154/dir0167566673966804575') .query(true) .reply(201, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Last-Modified', - 'Mon, 05 Jul 2021 01:36:57 GMT', + 'Mon, 06 Feb 2023 06:58:59 GMT', 'ETag', - '"0x8D93F5560DE6350"', + '"0x8DB080F9F83BA31"', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - '58794bc3-d01a-0012-023e-71af7f000000', + '93b391af-b01a-00b6-6af8-3983b3000000', 'x-ms-client-request-id', - 'b11205b6-2c44-468f-aa1f-2164e6573f17', + '364c7d6d-6eac-44f1-9365-0d7fcf35c235', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'x-ms-file-change-time', - '2021-07-05T01:36:57.9593040Z', + '2023-02-06T06:58:59.6799025Z', 'x-ms-file-last-write-time', - '2021-07-05T01:36:57.9593040Z', + '2023-02-06T06:58:59.6799025Z', 'x-ms-file-creation-time', - '2021-07-05T01:36:57.9593040Z', + '2023-02-06T06:58:59.6799025Z', 'x-ms-file-permission-key', - '7735077018765312711*253227986890839374', + '9212185477508673717*1658283376881248060', 'x-ms-file-attributes', 'Directory', 'x-ms-file-id', @@ -103,212 +99,200 @@ nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParam 'x-ms-request-server-encrypted', 'true', 'Date', - 'Mon, 05 Jul 2021 01:36:57 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .put('/share162544901424303651/dir162544901554302397/dir1162544901762104700') + .put('/share167566673899109627/dir167566673963409154/dir1167566673968408551') .query(true) .reply(201, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Last-Modified', - 'Mon, 05 Jul 2021 01:36:59 GMT', + 'Mon, 06 Feb 2023 06:58:59 GMT', 'ETag', - '"0x8D93F5561922FEB"', + '"0x8DB080F9F85DCC2"', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - '7965f41d-a01a-0005-6b3e-71e2e0000000', + '93b391b0-b01a-00b6-6bf8-3983b3000000', 'x-ms-client-request-id', - '8c206338-cd21-4cc7-ba43-afff22de36e0', + '801bbded-aca1-4a68-9544-dbceefa19474', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'x-ms-file-change-time', - '2021-07-05T01:36:59.1376363Z', + '2023-02-06T06:58:59.6938946Z', 'x-ms-file-last-write-time', - '2021-07-05T01:36:59.1376363Z', + '2023-02-06T06:58:59.6938946Z', 'x-ms-file-creation-time', - '2021-07-05T01:36:59.1376363Z', + '2023-02-06T06:58:59.6938946Z', 'x-ms-file-permission-key', - '7735077018765312711*253227986890839374', + '9212185477508673717*1658283376881248060', 'x-ms-file-attributes', 'Directory', 'x-ms-file-id', - '13835093239654252544', + '16140971433240035328', 'x-ms-file-parent-id', '13835128424026341376', 'x-ms-request-server-encrypted', 'true', 'Date', - 'Mon, 05 Jul 2021 01:36:59 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .put('/share162544901424303651/dir162544901554302397/dir2162544901879908426') + .put('/share167566673899109627/dir167566673963409154/dir2167566673969806061') .query(true) .reply(201, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Last-Modified', - 'Mon, 05 Jul 2021 01:37:00 GMT', + 'Mon, 06 Feb 2023 06:58:59 GMT', 'ETag', - '"0x8D93F556247D104"', + '"0x8DB080F9F884D6C"', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - '29283fba-501a-0022-0b3e-71632e000000', + '93b391b1-b01a-00b6-6cf8-3983b3000000', 'x-ms-client-request-id', - 'ee6b6244-291a-4b04-92aa-5e32fdc20763', + 'd22f8f39-e7c6-42ea-b88a-b10fb43500fe', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'x-ms-file-change-time', - '2021-07-05T01:37:00.3279620Z', + '2023-02-06T06:58:59.7098860Z', 'x-ms-file-last-write-time', - '2021-07-05T01:37:00.3279620Z', + '2023-02-06T06:58:59.7098860Z', 'x-ms-file-creation-time', - '2021-07-05T01:37:00.3279620Z', + '2023-02-06T06:58:59.7098860Z', 'x-ms-file-permission-key', - '7735077018765312711*253227986890839374', + '9212185477508673717*1658283376881248060', 'x-ms-file-attributes', 'Directory', 'x-ms-file-id', - '13835163608398430208', + '10376363910205800448', 'x-ms-file-parent-id', '13835128424026341376', 'x-ms-request-server-encrypted', 'true', 'Date', - 'Mon, 05 Jul 2021 01:36:59 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .put('/share162544901424303651/dir162544901554302397/file0162544901999203768') + .put('/share167566673899109627/dir167566673963409154/file0167566673971408633') .reply(201, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Last-Modified', - 'Mon, 05 Jul 2021 01:37:01 GMT', + 'Mon, 06 Feb 2023 06:58:59 GMT', 'ETag', - '"0x8D93F5562FEAA70"', + '"0x8DB080F9F8ABE14"', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - 'c99a6225-101a-001b-473e-7145f9000000', + '93b391b2-b01a-00b6-6df8-3983b3000000', 'x-ms-client-request-id', - '805d54f5-7d5a-4b88-ac9b-b44d533341d8', + 'c4a3e946-afc9-43bb-b42a-b2ce1b115f09', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'x-ms-file-change-time', - '2021-07-05T01:37:01.5262832Z', + '2023-02-06T06:58:59.7258772Z', 'x-ms-file-last-write-time', - '2021-07-05T01:37:01.5262832Z', + '2023-02-06T06:58:59.7258772Z', 'x-ms-file-creation-time', - '2021-07-05T01:37:01.5262832Z', + '2023-02-06T06:58:59.7258772Z', 'x-ms-file-permission-key', - '12331785703007272384*253227986890839374', + '13809038870468939698*1658283376881248060', 'x-ms-file-attributes', 'Archive', 'x-ms-file-id', - '13835075647468208128', + '14988049928633188352', 'x-ms-file-parent-id', '13835128424026341376', 'x-ms-request-server-encrypted', 'true', 'Date', - 'Mon, 05 Jul 2021 01:37:00 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .put('/share162544901424303651/dir162544901554302397/file1162544902118808840') + .put('/share167566673899109627/dir167566673963409154/file1167566673972907464') .reply(201, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Last-Modified', - 'Mon, 05 Jul 2021 01:37:02 GMT', + 'Mon, 06 Feb 2023 06:58:59 GMT', 'ETag', - '"0x8D93F5563B69524"', + '"0x8DB080F9F8CB99B"', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - '1c116c67-d01a-000d-6f3e-71ef2a000000', + '93b391b3-b01a-00b6-6ef8-3983b3000000', 'x-ms-client-request-id', - '73025b60-0134-4d5e-8e50-f9d8961b0ce2', + '5b3a4d2e-9313-407c-a045-4dd088baea3f', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'x-ms-file-change-time', - '2021-07-05T01:37:02.7316004Z', + '2023-02-06T06:58:59.7388699Z', 'x-ms-file-last-write-time', - '2021-07-05T01:37:02.7316004Z', + '2023-02-06T06:58:59.7388699Z', 'x-ms-file-creation-time', - '2021-07-05T01:37:02.7316004Z', + '2023-02-06T06:58:59.7388699Z', 'x-ms-file-permission-key', - '12331785703007272384*253227986890839374', + '13809038870468939698*1658283376881248060', 'x-ms-file-attributes', 'Archive', 'x-ms-file-id', - '13835146016212385792', + '12682206919419494400', 'x-ms-file-parent-id', '13835128424026341376', 'x-ms-request-server-encrypted', 'true', 'Date', - 'Mon, 05 Jul 2021 01:37:02 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .put('/share162544901424303651/dir162544901554302397/file2162544902239106310') + .put('/share167566673899109627/dir167566673963409154/file2167566673974309764') .reply(201, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Last-Modified', - 'Mon, 05 Jul 2021 01:37:03 GMT', + 'Mon, 06 Feb 2023 06:58:59 GMT', 'ETag', - '"0x8D93F556469296E"', + '"0x8DB080F9F8F2A4C"', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - '3c203c64-a01a-001a-483e-71a2b5000000', + '93b391b4-b01a-00b6-6ff8-3983b3000000', 'x-ms-client-request-id', - 'd186798d-4fe6-415b-81f6-c9fd01dde77b', + 'baea980f-9665-4eab-9d4d-9b6f0fcff7f2', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'x-ms-file-change-time', - '2021-07-05T01:37:03.9019374Z', + '2023-02-06T06:58:59.7548620Z', 'x-ms-file-last-write-time', - '2021-07-05T01:37:03.9019374Z', + '2023-02-06T06:58:59.7548620Z', 'x-ms-file-creation-time', - '2021-07-05T01:37:03.9019374Z', + '2023-02-06T06:58:59.7548620Z', 'x-ms-file-permission-key', - '12331785703007272384*253227986890839374', + '13809038870468939698*1658283376881248060', 'x-ms-file-attributes', 'Archive', 'x-ms-file-id', - '13835110831840296960', + '17293892937846882304', 'x-ms-file-parent-id', '13835128424026341376', 'x-ms-request-server-encrypted', 'true', 'Date', - 'Mon, 05 Jul 2021 01:37:03 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .get('/share162544901424303651/dir162544901554302397') + .get('/share167566673899109627/dir167566673963409154') .query(true) - .reply(200, "13835128424026341376dir0162544901674306002115292854148126474242021-07-05T01:36:57.9593040Z2021-07-05T01:36:57.9593040Z2021-07-05T01:36:57.9593040Z2021-07-05T01:36:57.9593040ZMon, 05 Jul 2021 01:36:57 GMT\"0x8D93F5560DE6350\"Directory7735077018765312711*253227986890839374dir1162544901762104700138350932396542525442021-07-05T01:36:59.1376363Z2021-07-05T01:36:59.1376363Z2021-07-05T01:36:59.1376363Z2021-07-05T01:36:59.1376363ZMon, 05 Jul 2021 01:36:59 GMT\"0x8D93F5561922FEB\"Directory7735077018765312711*253227986890839374dir2162544901879908426138351636083984302082021-07-05T01:37:00.3279620Z2021-07-05T01:37:00.3279620Z2021-07-05T01:37:00.3279620Z2021-07-05T01:37:00.3279620ZMon, 05 Jul 2021 01:37:00 GMT\"0x8D93F556247D104\"Directory7735077018765312711*253227986890839374file01625449019992037681383507564746820812810242021-07-05T01:37:01.5262832Z2021-07-05T01:37:01.5262832Z2021-07-05T01:37:01.5262832Z2021-07-05T01:37:01.5262832ZMon, 05 Jul 2021 01:37:01 GMT\"0x8D93F5562FEAA70\"Archive12331785703007272384*253227986890839374file11625449021188088401383514601621238579210242021-07-05T01:37:02.7316004Z2021-07-05T01:37:02.7316004Z2021-07-05T01:37:02.7316004Z2021-07-05T01:37:02.7316004ZMon, 05 Jul 2021 01:37:02 GMT\"0x8D93F5563B69524\"Archive12331785703007272384*253227986890839374file21625449022391063101383511083184029696010242021-07-05T01:37:03.9019374Z2021-07-05T01:37:03.9019374Z2021-07-05T01:37:03.9019374Z2021-07-05T01:37:03.9019374ZMon, 05 Jul 2021 01:37:03 GMT\"0x8D93F556469296E\"Archive12331785703007272384*253227986890839374", [ + .reply(200, "13835128424026341376dir0167566673966804575115292854148126474242023-02-06T06:58:59.6799025Z2023-02-06T06:58:59.6799025Z2023-02-06T06:58:59.6799025Z2023-02-06T06:58:59.6799025ZMon, 06 Feb 2023 06:58:59 GMT\"0x8DB080F9F83BA31\"Directory9212185477508673717*1658283376881248060dir1167566673968408551161409714332400353282023-02-06T06:58:59.6938946Z2023-02-06T06:58:59.6938946Z2023-02-06T06:58:59.6938946Z2023-02-06T06:58:59.6938946ZMon, 06 Feb 2023 06:58:59 GMT\"0x8DB080F9F85DCC2\"Directory9212185477508673717*1658283376881248060dir2167566673969806061103763639102058004482023-02-06T06:58:59.7098860Z2023-02-06T06:58:59.7098860Z2023-02-06T06:58:59.7098860Z2023-02-06T06:58:59.7098860ZMon, 06 Feb 2023 06:58:59 GMT\"0x8DB080F9F884D6C\"Directory9212185477508673717*1658283376881248060file01675666739714086331498804992863318835210242023-02-06T06:58:59.7258772Z2023-02-06T06:58:59.7258772Z2023-02-06T06:58:59.7258772Z2023-02-06T06:58:59.7258772ZMon, 06 Feb 2023 06:58:59 GMT\"0x8DB080F9F8ABE14\"Archive13809038870468939698*1658283376881248060file11675666739729074641268220691941949440010242023-02-06T06:58:59.7388699Z2023-02-06T06:58:59.7388699Z2023-02-06T06:58:59.7388699Z2023-02-06T06:58:59.7388699ZMon, 06 Feb 2023 06:58:59 GMT\"0x8DB080F9F8CB99B\"Archive13809038870468939698*1658283376881248060file21675666739743097641729389293784688230410242023-02-06T06:58:59.7548620Z2023-02-06T06:58:59.7548620Z2023-02-06T06:58:59.7548620Z2023-02-06T06:58:59.7548620ZMon, 06 Feb 2023 06:58:59 GMT\"0x8DB080F9F8F2A4C\"Archive13809038870468939698*1658283376881248060", [ 'Transfer-Encoding', 'chunked', 'Content-Type', @@ -316,154 +300,138 @@ nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParam 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - '7965f42b-a01a-0005-6f3e-71e2e0000000', + '93b391b5-b01a-00b6-70f8-3983b3000000', 'x-ms-client-request-id', - 'd9f14a82-ab68-466c-afaf-b073300401a0', + '383c7356-a6aa-42c6-8c54-7a1a65f6e34e', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'Access-Control-Expose-Headers', 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding', 'Access-Control-Allow-Origin', '*', 'Date', - 'Mon, 05 Jul 2021 01:37:04 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .delete('/share162544901424303651/dir162544901554302397/file0162544901999203768') + .delete('/share167566673899109627/dir167566673963409154/file0167566673971408633') .reply(202, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - '8f44c0fa-201a-0014-043e-71ee4e000000', + '93b391b6-b01a-00b6-71f8-3983b3000000', 'x-ms-client-request-id', - '124c0aab-6fd5-42a7-8fa8-eb1a2096cc1a', + '3fbf6ed4-42d6-4684-b33c-fc1cffac9394', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'Date', - 'Mon, 05 Jul 2021 01:37:06 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .delete('/share162544901424303651/dir162544901554302397/file1162544902118808840') + .delete('/share167566673899109627/dir167566673963409154/file1167566673972907464') .reply(202, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - 'd2b1e341-701a-0031-243e-71506f000000', + '93b391b7-b01a-00b6-72f8-3983b3000000', 'x-ms-client-request-id', - '5218d437-96b7-4b99-8700-63eed914551e', + '3af4a130-ae27-43a7-a5db-780f7d2f4d38', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'Date', - 'Mon, 05 Jul 2021 01:37:07 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .delete('/share162544901424303651/dir162544901554302397/file2162544902239106310') + .delete('/share167566673899109627/dir167566673963409154/file2167566673974309764') .reply(202, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - 'bc2c3dac-801a-0016-5e3e-71d1a1000000', + '93b391b8-b01a-00b6-73f8-3983b3000000', 'x-ms-client-request-id', - 'b32d3407-b217-4c70-83de-e7d075b9954a', + 'ddf79141-8bdf-4a38-b4cc-75fe43f704d3', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'Date', - 'Mon, 05 Jul 2021 01:37:08 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .delete('/share162544901424303651/dir162544901554302397/dir0162544901674306002') + .delete('/share167566673899109627/dir167566673963409154/dir0167566673966804575') .query(true) .reply(202, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - 'f0d220d0-b01a-0006-7e3e-713a43000000', + '93b391b9-b01a-00b6-74f8-3983b3000000', 'x-ms-client-request-id', - '26763e67-26f7-41e8-b7b3-1a42f16d70f5', + '7d58eff3-6b62-4b55-b4fc-3b14a91a18e4', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'Date', - 'Mon, 05 Jul 2021 01:37:09 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .delete('/share162544901424303651/dir162544901554302397/dir1162544901762104700') + .delete('/share167566673899109627/dir167566673963409154/dir1167566673968408551') .query(true) .reply(202, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - '927e9cd7-e01a-001d-4c3e-7104c8000000', + '93b391ba-b01a-00b6-75f8-3983b3000000', 'x-ms-client-request-id', - 'bfc25ffe-dc0f-4144-8ffe-321d4cb8de6c', + 'de40aaf2-750a-423f-9b17-14f6f23e0990', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'Date', - 'Mon, 05 Jul 2021 01:37:11 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .delete('/share162544901424303651/dir162544901554302397/dir2162544901879908426') + .delete('/share167566673899109627/dir167566673963409154/dir2167566673969806061') .query(true) .reply(202, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - 'f998818f-301a-0029-503e-71b647000000', + '93b391bb-b01a-00b6-76f8-3983b3000000', 'x-ms-client-request-id', - '042186c9-4999-4064-9f62-a0e15df5b4b2', + '5a498b2b-a346-4812-b707-4d0c5d04065d', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'Date', - 'Mon, 05 Jul 2021 01:37:12 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) - .delete('/share162544901424303651') + .delete('/share167566673899109627') .query(true) .reply(202, "", [ - 'Transfer-Encoding', - 'chunked', + 'Content-Length', + '0', 'Server', 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id', - '2ccaed12-c01a-000e-563e-713789000000', + '93b391bc-b01a-00b6-77f8-3983b3000000', 'x-ms-client-request-id', - '3cf0fe7b-9f2c-4389-b351-100f8d3db0d4', + '8dfd827d-3c4e-4cdc-a572-1d387f9992e5', 'x-ms-version', - '2020-10-02', + '2021-12-02', 'Date', - 'Mon, 05 Jul 2021 01:37:13 GMT', - 'Connection', - 'close' + 'Mon, 06 Feb 2023 06:58:59 GMT' ]); diff --git a/sdk/storage/storage-file-share/recordings/node/directoryclient/recording_listfilesanddirectories__with_invalid_char.js b/sdk/storage/storage-file-share/recordings/node/directoryclient/recording_listfilesanddirectories__with_invalid_char.js new file mode 100644 index 000000000000..d23bfc560cf1 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/directoryclient/recording_listfilesanddirectories__with_invalid_char.js @@ -0,0 +1,541 @@ +let nock = require('nock'); + +module.exports.hash = "92047cee93d29add57ac952974071c20"; + +module.exports.testInfo = {"uniqueName":{"share":"share167569224623704808","dir":"dir167569224680600559","dir￾":"dir￾167569224683404257","dir￾0":"dir￾0167569224685102864","dir￾1":"dir￾1167569224686508907","dir￾2":"dir￾2167569224687908739","file￾0":"file￾0167569224689300993","file￾1":"file￾1167569224690703211","file￾2":"file￾2167569224692105512"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569224623704808') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 14:04:06 GMT', + 'ETag', + '"0x8DB084B02F06EA7"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329b2-301a-0006-6f33-3a7a33000000', + 'x-ms-client-request-id', + 'a9b9c9f6-906e-4447-9e04-09527605acb7', + 'x-ms-version', + '2021-12-02', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569224623704808/dir167569224680600559') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 14:04:06 GMT', + 'ETag', + '"0x8DB084B02F6FB73"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329d0-301a-0006-0833-3a7a33000000', + 'x-ms-client-request-id', + '9c5a45e6-7f3c-4502-87e9-45d67b4f8afe', + 'x-ms-version', + '2021-12-02', + 'x-ms-file-change-time', + '2023-02-06T14:04:06.8367219Z', + 'x-ms-file-last-write-time', + '2023-02-06T14:04:06.8367219Z', + 'x-ms-file-creation-time', + '2023-02-06T14:04:06.8367219Z', + 'x-ms-file-permission-key', + '9212185477508673717*1658283376881248060', + 'x-ms-file-attributes', + 'Directory', + 'x-ms-file-id', + '13835128424026341376', + 'x-ms-file-parent-id', + '0', + 'x-ms-request-server-encrypted', + 'true', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569224623704808/dir%EF%BF%BE167569224683404257') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 14:04:06 GMT', + 'ETag', + '"0x8DB084B02FA2F4A"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329d4-301a-0006-0b33-3a7a33000000', + 'x-ms-client-request-id', + '9e30e8d9-c35c-48bc-a7b5-1728edaa6af7', + 'x-ms-version', + '2021-12-02', + 'x-ms-file-change-time', + '2023-02-06T14:04:06.8577098Z', + 'x-ms-file-last-write-time', + '2023-02-06T14:04:06.8577098Z', + 'x-ms-file-creation-time', + '2023-02-06T14:04:06.8577098Z', + 'x-ms-file-permission-key', + '9212185477508673717*1658283376881248060', + 'x-ms-file-attributes', + 'Directory', + 'x-ms-file-id', + '11529285414812647424', + 'x-ms-file-parent-id', + '0', + 'x-ms-request-server-encrypted', + 'true', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569224623704808/dir%EF%BF%BE167569224683404257/dir%EF%BF%BE0167569224685102864') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 14:04:06 GMT', + 'ETag', + '"0x8DB084B02FC2AD8"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329d6-301a-0006-0d33-3a7a33000000', + 'x-ms-client-request-id', + '7cf950f6-2978-4040-abf3-375b2ae35097', + 'x-ms-version', + '2021-12-02', + 'x-ms-file-change-time', + '2023-02-06T14:04:06.8707032Z', + 'x-ms-file-last-write-time', + '2023-02-06T14:04:06.8707032Z', + 'x-ms-file-creation-time', + '2023-02-06T14:04:06.8707032Z', + 'x-ms-file-permission-key', + '9212185477508673717*1658283376881248060', + 'x-ms-file-attributes', + 'Directory', + 'x-ms-file-id', + '16140971433240035328', + 'x-ms-file-parent-id', + '11529285414812647424', + 'x-ms-request-server-encrypted', + 'true', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569224623704808/dir%EF%BF%BE167569224683404257/dir%EF%BF%BE1167569224686508907') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 14:04:06 GMT', + 'ETag', + '"0x8DB084B02FE4D6C"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329d7-301a-0006-0e33-3a7a33000000', + 'x-ms-client-request-id', + '9b816e37-547b-43b3-862d-6eb724dded01', + 'x-ms-version', + '2021-12-02', + 'x-ms-file-change-time', + '2023-02-06T14:04:06.8846956Z', + 'x-ms-file-last-write-time', + '2023-02-06T14:04:06.8846956Z', + 'x-ms-file-creation-time', + '2023-02-06T14:04:06.8846956Z', + 'x-ms-file-permission-key', + '9212185477508673717*1658283376881248060', + 'x-ms-file-attributes', + 'Directory', + 'x-ms-file-id', + '10376363910205800448', + 'x-ms-file-parent-id', + '11529285414812647424', + 'x-ms-request-server-encrypted', + 'true', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569224623704808/dir%EF%BF%BE167569224683404257/dir%EF%BF%BE2167569224687908739') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 14:04:06 GMT', + 'ETag', + '"0x8DB084B030048F6"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329d8-301a-0006-0f33-3a7a33000000', + 'x-ms-client-request-id', + 'bd7afc91-b053-4b1b-ad0a-0880d85fc614', + 'x-ms-version', + '2021-12-02', + 'x-ms-file-change-time', + '2023-02-06T14:04:06.8976886Z', + 'x-ms-file-last-write-time', + '2023-02-06T14:04:06.8976886Z', + 'x-ms-file-creation-time', + '2023-02-06T14:04:06.8976886Z', + 'x-ms-file-permission-key', + '9212185477508673717*1658283376881248060', + 'x-ms-file-attributes', + 'Directory', + 'x-ms-file-id', + '14988049928633188352', + 'x-ms-file-parent-id', + '11529285414812647424', + 'x-ms-request-server-encrypted', + 'true', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569224623704808/dir%EF%BF%BE167569224683404257/file%EF%BF%BE0167569224689300993') + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 14:04:06 GMT', + 'ETag', + '"0x8DB084B0302B9A4"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329db-301a-0006-1233-3a7a33000000', + 'x-ms-client-request-id', + '6f6a1f49-7e5e-4b90-8e9d-15c89373f113', + 'x-ms-version', + '2021-12-02', + 'x-ms-file-change-time', + '2023-02-06T14:04:06.9136804Z', + 'x-ms-file-last-write-time', + '2023-02-06T14:04:06.9136804Z', + 'x-ms-file-creation-time', + '2023-02-06T14:04:06.9136804Z', + 'x-ms-file-permission-key', + '13809038870468939698*1658283376881248060', + 'x-ms-file-attributes', + 'Archive', + 'x-ms-file-id', + '12682206919419494400', + 'x-ms-file-parent-id', + '11529285414812647424', + 'x-ms-request-server-encrypted', + 'true', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569224623704808/dir%EF%BF%BE167569224683404257/file%EF%BF%BE1167569224690703211') + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 14:04:06 GMT', + 'ETag', + '"0x8DB084B0304DC34"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329dc-301a-0006-1333-3a7a33000000', + 'x-ms-client-request-id', + '2acbbf79-85e2-4d9b-8721-ccf2ef39aea2', + 'x-ms-version', + '2021-12-02', + 'x-ms-file-change-time', + '2023-02-06T14:04:06.9276724Z', + 'x-ms-file-last-write-time', + '2023-02-06T14:04:06.9276724Z', + 'x-ms-file-creation-time', + '2023-02-06T14:04:06.9276724Z', + 'x-ms-file-permission-key', + '13809038870468939698*1658283376881248060', + 'x-ms-file-attributes', + 'Archive', + 'x-ms-file-id', + '17293892937846882304', + 'x-ms-file-parent-id', + '11529285414812647424', + 'x-ms-request-server-encrypted', + 'true', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569224623704808/dir%EF%BF%BE167569224683404257/file%EF%BF%BE2167569224692105512') + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 14:04:06 GMT', + 'ETag', + '"0x8DB084B0306FECB"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329df-301a-0006-1633-3a7a33000000', + 'x-ms-client-request-id', + 'c289d77c-5fda-486f-b9ca-4acbcbcc7212', + 'x-ms-version', + '2021-12-02', + 'x-ms-file-change-time', + '2023-02-06T14:04:06.9416651Z', + 'x-ms-file-last-write-time', + '2023-02-06T14:04:06.9416651Z', + 'x-ms-file-creation-time', + '2023-02-06T14:04:06.9416651Z', + 'x-ms-file-permission-key', + '13809038870468939698*1658283376881248060', + 'x-ms-file-attributes', + 'Archive', + 'x-ms-file-id', + '9799903157902376960', + 'x-ms-file-parent-id', + '11529285414812647424', + 'x-ms-request-server-encrypted', + 'true', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share167569224623704808/dir%EF%BF%BE167569224683404257') + .query(true) + .reply(200, "11529285414812647424dir%EF%BF%BE0167569224685102864161409714332400353282023-02-06T14:04:06.8707032Z2023-02-06T14:04:06.8707032Z2023-02-06T14:04:06.8707032Z2023-02-06T14:04:06.8707032ZMon, 06 Feb 2023 14:04:06 GMT\"0x8DB084B02FC2AD8\"Directory9212185477508673717*1658283376881248060dir%EF%BF%BE1167569224686508907103763639102058004482023-02-06T14:04:06.8846956Z2023-02-06T14:04:06.8846956Z2023-02-06T14:04:06.8846956Z2023-02-06T14:04:06.8846956ZMon, 06 Feb 2023 14:04:06 GMT\"0x8DB084B02FE4D6C\"Directory9212185477508673717*1658283376881248060dir%EF%BF%BE2167569224687908739149880499286331883522023-02-06T14:04:06.8976886Z2023-02-06T14:04:06.8976886Z2023-02-06T14:04:06.8976886Z2023-02-06T14:04:06.8976886ZMon, 06 Feb 2023 14:04:06 GMT\"0x8DB084B030048F6\"Directory9212185477508673717*1658283376881248060file%EF%BF%BE01675692246893009931268220691941949440010242023-02-06T14:04:06.9136804Z2023-02-06T14:04:06.9136804Z2023-02-06T14:04:06.9136804Z2023-02-06T14:04:06.9136804ZMon, 06 Feb 2023 14:04:06 GMT\"0x8DB084B0302B9A4\"Archive13809038870468939698*1658283376881248060file%EF%BF%BE11675692246907032111729389293784688230410242023-02-06T14:04:06.9276724Z2023-02-06T14:04:06.9276724Z2023-02-06T14:04:06.9276724Z2023-02-06T14:04:06.9276724ZMon, 06 Feb 2023 14:04:06 GMT\"0x8DB084B0304DC34\"Archive13809038870468939698*1658283376881248060file%EF%BF%BE2167569224692105512979990315790237696010242023-02-06T14:04:06.9416651Z2023-02-06T14:04:06.9416651Z2023-02-06T14:04:06.9416651Z2023-02-06T14:04:06.9416651ZMon, 06 Feb 2023 14:04:06 GMT\"0x8DB084B0306FECB\"Archive13809038870468939698*1658283376881248060", [ + 'Transfer-Encoding', + 'chunked', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329e0-301a-0006-1733-3a7a33000000', + 'x-ms-client-request-id', + 'fb4d9a65-42e7-4ec5-af3c-603778539106', + 'x-ms-version', + '2021-12-02', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share167569224623704808/dir%EF%BF%BE167569224683404257') + .query(true) + .reply(200, "dir%EF%BF%BE11529285414812647424dir%EF%BF%BE0167569224685102864161409714332400353282023-02-06T14:04:06.8707032Z2023-02-06T14:04:06.8707032Z2023-02-06T14:04:06.8707032Z2023-02-06T14:04:06.8707032ZMon, 06 Feb 2023 14:04:06 GMT\"0x8DB084B02FC2AD8\"Directory9212185477508673717*1658283376881248060dir%EF%BF%BE1167569224686508907103763639102058004482023-02-06T14:04:06.8846956Z2023-02-06T14:04:06.8846956Z2023-02-06T14:04:06.8846956Z2023-02-06T14:04:06.8846956ZMon, 06 Feb 2023 14:04:06 GMT\"0x8DB084B02FE4D6C\"Directory9212185477508673717*1658283376881248060dir%EF%BF%BE2167569224687908739149880499286331883522023-02-06T14:04:06.8976886Z2023-02-06T14:04:06.8976886Z2023-02-06T14:04:06.8976886Z2023-02-06T14:04:06.8976886ZMon, 06 Feb 2023 14:04:06 GMT\"0x8DB084B030048F6\"Directory9212185477508673717*1658283376881248060", [ + 'Transfer-Encoding', + 'chunked', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329e4-301a-0006-1b33-3a7a33000000', + 'x-ms-client-request-id', + '8d7e8669-da21-49f9-a9f1-7dda9a89085a', + 'x-ms-version', + '2021-12-02', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share167569224623704808/dir%EF%BF%BE167569224683404257') + .query(true) + .reply(200, "file%EF%BF%BE11529285414812647424file%EF%BF%BE01675692246893009931268220691941949440010242023-02-06T14:04:06.9136804Z2023-02-06T14:04:06.9136804Z2023-02-06T14:04:06.9136804Z2023-02-06T14:04:06.9136804ZMon, 06 Feb 2023 14:04:06 GMT\"0x8DB084B0302B9A4\"Archive13809038870468939698*1658283376881248060file%EF%BF%BE11675692246907032111729389293784688230410242023-02-06T14:04:06.9276724Z2023-02-06T14:04:06.9276724Z2023-02-06T14:04:06.9276724Z2023-02-06T14:04:06.9276724ZMon, 06 Feb 2023 14:04:06 GMT\"0x8DB084B0304DC34\"Archive13809038870468939698*1658283376881248060file%EF%BF%BE2167569224692105512979990315790237696010242023-02-06T14:04:06.9416651Z2023-02-06T14:04:06.9416651Z2023-02-06T14:04:06.9416651Z2023-02-06T14:04:06.9416651ZMon, 06 Feb 2023 14:04:06 GMT\"0x8DB084B0306FECB\"Archive13809038870468939698*1658283376881248060", [ + 'Transfer-Encoding', + 'chunked', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329e6-301a-0006-1d33-3a7a33000000', + 'x-ms-client-request-id', + '8fec8bf2-f6b2-4e1f-b7da-2d5f81883f58', + 'x-ms-version', + '2021-12-02', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share167569224623704808/dir%EF%BF%BE167569224683404257/file%EF%BF%BE0167569224689300993') + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329e7-301a-0006-1e33-3a7a33000000', + 'x-ms-client-request-id', + 'a952686b-fc64-419b-92a8-5778a89755f8', + 'x-ms-version', + '2021-12-02', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share167569224623704808/dir%EF%BF%BE167569224683404257/file%EF%BF%BE1167569224690703211') + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329e8-301a-0006-1f33-3a7a33000000', + 'x-ms-client-request-id', + '19539a19-1a67-40b7-8626-b9bd5d15671c', + 'x-ms-version', + '2021-12-02', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share167569224623704808/dir%EF%BF%BE167569224683404257/file%EF%BF%BE2167569224692105512') + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329e9-301a-0006-2033-3a7a33000000', + 'x-ms-client-request-id', + '9abc0e9b-8fc8-4f42-8d59-bfc7f8099d70', + 'x-ms-version', + '2021-12-02', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share167569224623704808/dir%EF%BF%BE167569224683404257/dir%EF%BF%BE0167569224685102864') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329eb-301a-0006-2233-3a7a33000000', + 'x-ms-client-request-id', + '8705cfcf-a154-43e9-899f-92db0446f39d', + 'x-ms-version', + '2021-12-02', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share167569224623704808/dir%EF%BF%BE167569224683404257/dir%EF%BF%BE1167569224686508907') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329ec-301a-0006-2333-3a7a33000000', + 'x-ms-client-request-id', + 'c8aab6ba-fcf1-4e10-ac55-d68a273eedf9', + 'x-ms-version', + '2021-12-02', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share167569224623704808/dir%EF%BF%BE167569224683404257/dir%EF%BF%BE2167569224687908739') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329ed-301a-0006-2433-3a7a33000000', + 'x-ms-client-request-id', + '1710c029-1d48-402f-b0eb-6092ad36d025', + 'x-ms-version', + '2021-12-02', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share167569224623704808/dir%EF%BF%BE167569224683404257') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + 'e05329ef-301a-0006-2633-3a7a33000000', + 'x-ms-client-request-id', + '9d15eef4-0fbe-4a66-b232-afb8373737ee', + 'x-ms-version', + '2021-12-02', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share167569224623704808') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '41caf96e-001a-0063-1d33-3acb6e000000', + 'x-ms-client-request-id', + 'd66f5e43-2c4f-4a51-951e-4f8922e6fafd', + 'x-ms-version', + '2021-12-02', + 'Date', + 'Mon, 06 Feb 2023 14:04:06 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/directoryclient/recording_listhandles_for_directory_with_invalid_char_should_work.js b/sdk/storage/storage-file-share/recordings/node/directoryclient/recording_listhandles_for_directory_with_invalid_char_should_work.js new file mode 100644 index 000000000000..7cc4d28a2588 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/directoryclient/recording_listhandles_for_directory_with_invalid_char_should_work.js @@ -0,0 +1,145 @@ +let nock = require('nock'); + +module.exports.hash = "330c64727056aa653d660eb906525078"; + +module.exports.testInfo = {"uniqueName":{"share":"share167569196732709778","dir":"dir167569196782704897","dir￾":"dir￾167569196785709313"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569196732709778') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 13:59:27 GMT', + 'ETag', + '"0x8DB084A5CA74647"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '7091c9ed-c01a-0090-4e33-3a1807000000', + 'x-ms-client-request-id', + 'cdb5ab03-bdd4-4f5b-8660-72d8e0fc9050', + 'x-ms-version', + '2021-12-02', + 'Date', + 'Mon, 06 Feb 2023 13:59:27 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569196732709778/dir167569196782704897') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 13:59:27 GMT', + 'ETag', + '"0x8DB084A5CAEEBD9"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '7091c9f1-c01a-0090-4f33-3a1807000000', + 'x-ms-client-request-id', + '83045fac-0912-4d0c-b4f4-fbd98cfdb976', + 'x-ms-version', + '2021-12-02', + 'x-ms-file-change-time', + '2023-02-06T13:59:27.8626777Z', + 'x-ms-file-last-write-time', + '2023-02-06T13:59:27.8626777Z', + 'x-ms-file-creation-time', + '2023-02-06T13:59:27.8626777Z', + 'x-ms-file-permission-key', + '9212185477508673717*1658283376881248060', + 'x-ms-file-attributes', + 'Directory', + 'x-ms-file-id', + '13835128424026341376', + 'x-ms-file-parent-id', + '0', + 'x-ms-request-server-encrypted', + 'true', + 'Date', + 'Mon, 06 Feb 2023 13:59:27 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569196732709778/dir%EF%BF%BE167569196785709313') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 13:59:27 GMT', + 'ETag', + '"0x8DB084A5CB1D1A5"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '7091c9f3-c01a-0090-5033-3a1807000000', + 'x-ms-client-request-id', + '572eecb6-b9cd-44e7-881b-698b2a872b98', + 'x-ms-version', + '2021-12-02', + 'x-ms-file-change-time', + '2023-02-06T13:59:27.8816677Z', + 'x-ms-file-last-write-time', + '2023-02-06T13:59:27.8816677Z', + 'x-ms-file-creation-time', + '2023-02-06T13:59:27.8816677Z', + 'x-ms-file-permission-key', + '9212185477508673717*1658283376881248060', + 'x-ms-file-attributes', + 'Directory', + 'x-ms-file-id', + '11529285414812647424', + 'x-ms-file-parent-id', + '0', + 'x-ms-request-server-encrypted', + 'true', + 'Date', + 'Mon, 06 Feb 2023 13:59:27 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share167569196732709778/dir%EF%BF%BE167569196785709313') + .query(true) + .reply(200, "", [ + 'Transfer-Encoding', + 'chunked', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '7091c9f4-c01a-0090-5133-3a1807000000', + 'x-ms-client-request-id', + '0fd39e5e-7290-4725-b35c-fe5b26fe69aa', + 'x-ms-version', + '2021-12-02', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Mon, 06 Feb 2023 13:59:27 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share167569196732709778') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '7091c9f5-c01a-0090-5233-3a1807000000', + 'x-ms-client-request-id', + '839f3c09-cc8f-48de-9ea6-6d6015dde959', + 'x-ms-version', + '2021-12-02', + 'Date', + 'Mon, 06 Feb 2023 13:59:27 GMT' +]); diff --git a/sdk/storage/storage-file-share/recordings/node/fileclient/recording_listhandles_for_file_with_invalid_char_should_work.js b/sdk/storage/storage-file-share/recordings/node/fileclient/recording_listhandles_for_file_with_invalid_char_should_work.js new file mode 100644 index 000000000000..a2e56a4068b0 --- /dev/null +++ b/sdk/storage/storage-file-share/recordings/node/fileclient/recording_listhandles_for_file_with_invalid_char_should_work.js @@ -0,0 +1,144 @@ +let nock = require('nock'); + +module.exports.hash = "dd4542059d39a7de420bdb64fea81cdc"; + +module.exports.testInfo = {"uniqueName":{"share":"share167569196797808310","dir":"dir167569196799104222","file":"file167569196801400947","file￾":"file￾167569196801503745"},"newDate":{}} + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569196797808310') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 13:59:27 GMT', + 'ETag', + '"0x8DB084A5CC355D8"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '7091c9f6-c01a-0090-5333-3a1807000000', + 'x-ms-client-request-id', + 'b577ae0c-aa17-4243-a09d-5308b5dba2d3', + 'x-ms-version', + '2021-12-02', + 'Date', + 'Mon, 06 Feb 2023 13:59:27 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569196797808310/dir167569196799104222') + .query(true) + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 13:59:28 GMT', + 'ETag', + '"0x8DB084A5CC72B78"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '7091c9f8-c01a-0090-5433-3a1807000000', + 'x-ms-client-request-id', + '26cca839-6558-4760-a2fe-471f9e75c93f', + 'x-ms-version', + '2021-12-02', + 'x-ms-file-change-time', + '2023-02-06T13:59:28.0215928Z', + 'x-ms-file-last-write-time', + '2023-02-06T13:59:28.0215928Z', + 'x-ms-file-creation-time', + '2023-02-06T13:59:28.0215928Z', + 'x-ms-file-permission-key', + '9212185477508673717*1658283376881248060', + 'x-ms-file-attributes', + 'Directory', + 'x-ms-file-id', + '13835128424026341376', + 'x-ms-file-parent-id', + '0', + 'x-ms-request-server-encrypted', + 'true', + 'Date', + 'Mon, 06 Feb 2023 13:59:27 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .put('/share167569196797808310/file%EF%BF%BE167569196801503745') + .reply(201, "", [ + 'Content-Length', + '0', + 'Last-Modified', + 'Mon, 06 Feb 2023 13:59:28 GMT', + 'ETag', + '"0x8DB084A5CC9C32E"', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '7091c9f9-c01a-0090-5533-3a1807000000', + 'x-ms-client-request-id', + 'aa1fbc95-d39e-448b-a305-2057c3fc0e85', + 'x-ms-version', + '2021-12-02', + 'x-ms-file-change-time', + '2023-02-06T13:59:28.0385838Z', + 'x-ms-file-last-write-time', + '2023-02-06T13:59:28.0385838Z', + 'x-ms-file-creation-time', + '2023-02-06T13:59:28.0385838Z', + 'x-ms-file-permission-key', + '13809038870468939698*1658283376881248060', + 'x-ms-file-attributes', + 'Archive', + 'x-ms-file-id', + '11529285414812647424', + 'x-ms-file-parent-id', + '0', + 'x-ms-request-server-encrypted', + 'true', + 'Date', + 'Mon, 06 Feb 2023 13:59:27 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .get('/share167569196797808310/file%EF%BF%BE167569196801503745') + .query(true) + .reply(200, "", [ + 'Transfer-Encoding', + 'chunked', + 'Content-Type', + 'application/xml', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '7091c9fa-c01a-0090-5633-3a1807000000', + 'x-ms-client-request-id', + '76d8c2cb-625f-44e0-a220-e91a18347b10', + 'x-ms-version', + '2021-12-02', + 'Access-Control-Expose-Headers', + 'x-ms-request-id,x-ms-client-request-id,Server,x-ms-version,Content-Type,Content-Length,Date,Transfer-Encoding', + 'Access-Control-Allow-Origin', + '*', + 'Date', + 'Mon, 06 Feb 2023 13:59:27 GMT' +]); + +nock('https://fakestorageaccount.file.core.windows.net:443', {"encodedQueryParams":true}) + .delete('/share167569196797808310') + .query(true) + .reply(202, "", [ + 'Content-Length', + '0', + 'Server', + 'Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0', + 'x-ms-request-id', + '7091c9fb-c01a-0090-5733-3a1807000000', + 'x-ms-client-request-id', + 'ca613457-61af-4e49-ab54-8bd8c8d9f43c', + 'x-ms-version', + '2021-12-02', + 'Date', + 'Mon, 06 Feb 2023 13:59:27 GMT' +]); diff --git a/sdk/storage/storage-file-share/src/Clients.ts b/sdk/storage/storage-file-share/src/Clients.ts index 8ead863ba0f7..352f2ba5d31e 100644 --- a/sdk/storage/storage-file-share/src/Clients.ts +++ b/sdk/storage/storage-file-share/src/Clients.ts @@ -77,6 +77,8 @@ import { setURLPath, setURLQueries, EscapePath, + ConvertInternalResponseOfListFiles, + ConvertInternalResponseOfListHandles, } from "./utils/utils.common"; import { Credential } from "./credentials/Credential"; import { StorageSharedKeyCredential } from "./credentials/StorageSharedKeyCredential"; @@ -2438,11 +2440,20 @@ export class ShareDirectoryClient extends StorageClient { } try { - return await this.context.listFilesAndDirectoriesSegment({ + const response = await this.context.listFilesAndDirectoriesSegment({ marker, ...options, ...convertTracingToRequestOptionsBase(updatedOptions), }); + + const wrappedResponse: DirectoryListFilesAndDirectoriesSegmentResponse = { + ...ConvertInternalResponseOfListFiles(response), + _response: { + ...response._response, + parsedBody: ConvertInternalResponseOfListFiles(response._response.parsedBody), + }, // _response is made non-enumerable + }; + return wrappedResponse; } catch (e: any) { span.setStatus({ code: SpanStatusCode.ERROR, @@ -2631,7 +2642,16 @@ export class ShareDirectoryClient extends StorageClient { if ((response.handleList as any) === "") { response.handleList = undefined; } - return response; + + const wrappedResponse: DirectoryListHandlesResponse = { + ...ConvertInternalResponseOfListHandles(response), + _response: { + ...response._response, + parsedBody: ConvertInternalResponseOfListHandles(response._response.parsedBody), + }, + }; + + return wrappedResponse; } catch (e: any) { span.setStatus({ code: SpanStatusCode.ERROR, @@ -5098,7 +5118,16 @@ export class ShareFileClient extends StorageClient { if ((response.handleList as any) === "") { response.handleList = undefined; } - return response; + + const wrappedResponse: DirectoryListHandlesResponse = { + ...ConvertInternalResponseOfListHandles(response), + _response: { + ...response._response, + parsedBody: ConvertInternalResponseOfListHandles(response._response.parsedBody), + }, + }; + + return wrappedResponse; } catch (e: any) { span.setStatus({ code: SpanStatusCode.ERROR, diff --git a/sdk/storage/storage-file-share/src/generated/src/models/index.ts b/sdk/storage/storage-file-share/src/generated/src/models/index.ts index cea6fa380f71..afc651868f81 100644 --- a/sdk/storage/storage-file-share/src/generated/src/models/index.ts +++ b/sdk/storage/storage-file-share/src/generated/src/models/index.ts @@ -159,8 +159,9 @@ export interface ListFilesAndDirectoriesSegmentResponse { serviceEndpoint: string; shareName: string; shareSnapshot?: string; + encoded?: boolean; directoryPath: string; - prefix: string; + prefix: StringEncoded; marker?: string; maxResults?: number; /** Abstract for entries that can be listed from Directory. */ @@ -169,6 +170,11 @@ export interface ListFilesAndDirectoriesSegmentResponse { directoryId?: string; } +export interface StringEncoded { + encoded?: boolean; + content?: string; +} + /** Abstract for entries that can be listed from Directory. */ export interface FilesAndDirectoriesListSegment { directoryItems: DirectoryItem[]; @@ -177,7 +183,7 @@ export interface FilesAndDirectoriesListSegment { /** A listed directory item. */ export interface DirectoryItem { - name: string; + name: StringEncoded; fileId?: string; /** File properties. */ properties?: FileProperty; @@ -199,7 +205,7 @@ export interface FileProperty { /** A listed file item. */ export interface FileItem { - name: string; + name: StringEncoded; fileId?: string; /** File properties. */ properties: FileProperty; @@ -217,8 +223,7 @@ export interface ListHandlesResponse { export interface HandleItem { /** XSMB service handle ID */ handleId: string; - /** File or directory name including full path starting from share root */ - path: string; + path: StringEncoded; /** FileId uniquely identifies the file or directory. */ fileId: string; /** ParentId uniquely identifies the parent directory of the object. */ diff --git a/sdk/storage/storage-file-share/src/generated/src/models/mappers.ts b/sdk/storage/storage-file-share/src/generated/src/models/mappers.ts index e6c990230df1..a812dd40b066 100644 --- a/sdk/storage/storage-file-share/src/generated/src/models/mappers.ts +++ b/sdk/storage/storage-file-share/src/generated/src/models/mappers.ts @@ -656,6 +656,14 @@ export const ListFilesAndDirectoriesSegmentResponse: coreHttp.CompositeMapper = name: "String" } }, + encoded: { + serializedName: "Encoded", + xmlName: "Encoded", + xmlIsAttribute: true, + type: { + name: "Boolean" + } + }, directoryPath: { serializedName: "DirectoryPath", required: true, @@ -667,10 +675,10 @@ export const ListFilesAndDirectoriesSegmentResponse: coreHttp.CompositeMapper = }, prefix: { serializedName: "Prefix", - required: true, xmlName: "Prefix", type: { - name: "String" + name: "Composite", + className: "StringEncoded" } }, marker: { @@ -714,6 +722,32 @@ export const ListFilesAndDirectoriesSegmentResponse: coreHttp.CompositeMapper = } }; +export const StringEncoded: coreHttp.CompositeMapper = { + serializedName: "StringEncoded", + type: { + name: "Composite", + className: "StringEncoded", + modelProperties: { + encoded: { + serializedName: "Encoded", + xmlName: "Encoded", + xmlIsAttribute: true, + type: { + name: "Boolean" + } + }, + content: { + serializedName: "content", + xmlName: "content", + xmlIsMsText: true, + type: { + name: "String" + } + } + } + } +}; + export const FilesAndDirectoriesListSegment: coreHttp.CompositeMapper = { serializedName: "FilesAndDirectoriesListSegment", xmlName: "Entries", @@ -764,10 +798,10 @@ export const DirectoryItem: coreHttp.CompositeMapper = { modelProperties: { name: { serializedName: "Name", - required: true, xmlName: "Name", type: { - name: "String" + name: "Composite", + className: "StringEncoded" } }, fileId: { @@ -872,10 +906,10 @@ export const FileItem: coreHttp.CompositeMapper = { modelProperties: { name: { serializedName: "Name", - required: true, xmlName: "Name", type: { - name: "String" + name: "Composite", + className: "StringEncoded" } }, fileId: { @@ -962,10 +996,10 @@ export const HandleItem: coreHttp.CompositeMapper = { }, path: { serializedName: "Path", - required: true, xmlName: "Path", type: { - name: "String" + name: "Composite", + className: "StringEncoded" } }, fileId: { diff --git a/sdk/storage/storage-file-share/src/generated/src/models/parameters.ts b/sdk/storage/storage-file-share/src/generated/src/models/parameters.ts index 4e1b76744ce6..e2073057f8be 100644 --- a/sdk/storage/storage-file-share/src/generated/src/models/parameters.ts +++ b/sdk/storage/storage-file-share/src/generated/src/models/parameters.ts @@ -100,7 +100,7 @@ export const timeoutInSeconds: OperationQueryParameter = { export const version: OperationParameter = { parameterPath: "version", mapper: { - defaultValue: "2021-10-04", + defaultValue: "2021-12-02", isConstant: true, serializedName: "x-ms-version", type: { diff --git a/sdk/storage/storage-file-share/src/generated/src/storageClientContext.ts b/sdk/storage/storage-file-share/src/generated/src/storageClientContext.ts index a5a978d51aea..c6e8f389d017 100644 --- a/sdk/storage/storage-file-share/src/generated/src/storageClientContext.ts +++ b/sdk/storage/storage-file-share/src/generated/src/storageClientContext.ts @@ -48,7 +48,7 @@ export class StorageClientContext extends coreHttp.ServiceClient { this.url = url; // Assigning values to Constant parameters - this.version = options.version || "2021-10-04"; + this.version = options.version || "2021-12-02"; this.fileRangeWriteFromUrl = options.fileRangeWriteFromUrl || "update"; } } diff --git a/sdk/storage/storage-file-share/src/generatedModels.ts b/sdk/storage/storage-file-share/src/generatedModels.ts index bb7e4f019bf9..f5b5f4a432a0 100644 --- a/sdk/storage/storage-file-share/src/generatedModels.ts +++ b/sdk/storage/storage-file-share/src/generatedModels.ts @@ -2,6 +2,7 @@ // Licensed under the MIT license. // explicitly exporting types that we need. +import * as coreHttp from "@azure/core-http"; export { CopyStatusType, @@ -9,9 +10,6 @@ export { DirectoryCreateResponse, DirectoryDeleteResponse, DirectoryGetPropertiesResponse, - DirectoryItem, - DirectoryListFilesAndDirectoriesSegmentResponse, - DirectoryListHandlesResponse, DirectorySetMetadataResponse, DirectorySetPropertiesResponse, FileAbortCopyResponse, @@ -22,9 +20,7 @@ export { FileDownloadResponse as FileDownloadResponseModel, FileGetPropertiesResponse, FileGetRangeListHeaders, - FileItem, FileLastWrittenMode, - FileListHandlesResponse, FileServiceProperties, FileSetMetadataResponse, FileStartCopyResponse, @@ -32,7 +28,6 @@ export { FileUploadRangeFromURLResponse, FileUploadRangeResponse, PermissionCopyModeType, - HandleItem, ListSharesIncludeType, FileRange as RangeModel, ServiceGetPropertiesResponse, @@ -56,10 +51,7 @@ export { DirectoryCreateHeaders, DirectoryDeleteHeaders, DirectoryGetPropertiesHeaders, - FilesAndDirectoriesListSegment, - ListFilesAndDirectoriesSegmentResponse, DirectoryListFilesAndDirectoriesSegmentHeaders, - ListHandlesResponse, DirectoryRenameHeaders, DirectoryRenameResponse, DirectoryListHandlesHeaders, @@ -115,7 +107,14 @@ export { ShareRootSquash, } from "./generated/src/models"; -import { ShareSetPropertiesResponse, ShareSetPropertiesHeaders } from "./generated/src/models"; +import { + ShareSetPropertiesResponse, + ShareSetPropertiesHeaders, + FileProperty, + DirectoryListFilesAndDirectoriesSegmentHeaders, + FileListHandlesHeaders, + DirectoryListHandlesHeaders, +} from "./generated/src/models"; /** * Contains response data for the setQuota operation. @@ -126,3 +125,116 @@ export type ShareSetQuotaResponse = ShareSetPropertiesResponse; * Defines headers for setQuota operation. */ export type ShareSetQuotaHeaders = ShareSetPropertiesHeaders; + +/** A listed file item. */ +export interface FileItem { + name: string; + fileId?: string; + /** File properties. */ + properties: FileProperty; + attributes?: string; + permissionKey?: string; +} + +/** A listed directory item. */ +export interface DirectoryItem { + name: string; + fileId?: string; + /** File properties. */ + properties?: FileProperty; + attributes?: string; + permissionKey?: string; +} + +/** Abstract for entries that can be listed from Directory. */ +export interface FilesAndDirectoriesListSegment { + directoryItems: DirectoryItem[]; + fileItems: FileItem[]; +} + +/** An enumeration of directories and files. */ +export interface ListFilesAndDirectoriesSegmentResponse { + serviceEndpoint: string; + shareName: string; + shareSnapshot?: string; + directoryPath: string; + prefix: string; + marker?: string; + maxResults?: number; + /** Abstract for entries that can be listed from Directory. */ + segment: FilesAndDirectoriesListSegment; + continuationToken: string; + directoryId?: string; +} + +/** Contains response data for the listFilesAndDirectoriesSegment operation. */ +export type DirectoryListFilesAndDirectoriesSegmentResponse = + DirectoryListFilesAndDirectoriesSegmentHeaders & + ListFilesAndDirectoriesSegmentResponse & { + /** The underlying HTTP response. */ + _response: coreHttp.HttpResponse & { + /** The response body as text (string format) */ + bodyAsText: string; + + /** The response body as parsed JSON or XML */ + parsedBody: ListFilesAndDirectoriesSegmentResponse; + /** The parsed HTTP response headers. */ + parsedHeaders: DirectoryListFilesAndDirectoriesSegmentHeaders; + }; + }; + +/** A listed Azure Storage handle item. */ +export interface HandleItem { + /** XSMB service handle ID */ + handleId: string; + /** File or directory name including full path starting from share root */ + path: string; + /** FileId uniquely identifies the file or directory. */ + fileId: string; + /** ParentId uniquely identifies the parent directory of the object. */ + parentId?: string; + /** SMB session ID in context of which the file handle was opened */ + sessionId: string; + /** Client IP that opened the handle */ + clientIp: string; + /** Time when the session that previously opened the handle has last been reconnected. (UTC) */ + openTime: Date; + /** Time handle was last connected to (UTC) */ + lastReconnectTime?: Date; +} + +/** An enumeration of handles. */ +export interface ListHandlesResponse { + handleList?: HandleItem[]; + continuationToken: string; +} + +/** Contains response data for the listHandles operation. */ +export type FileListHandlesResponse = FileListHandlesHeaders & + ListHandlesResponse & { + /** The underlying HTTP response. */ + _response: coreHttp.HttpResponse & { + /** The response body as text (string format) */ + bodyAsText: string; + + /** The response body as parsed JSON or XML */ + parsedBody: ListHandlesResponse; + /** The parsed HTTP response headers. */ + parsedHeaders: FileListHandlesHeaders; + }; + }; + +/** Contains response data for the listHandles operation. */ +export type DirectoryListHandlesResponse = DirectoryListHandlesHeaders & + ListHandlesResponse & { + /** The underlying HTTP response. */ + _response: coreHttp.HttpResponse & { + /** The response body as text (string format) */ + bodyAsText: string; + + /** The response body as parsed JSON or XML */ + parsedBody: ListHandlesResponse; + /** The parsed HTTP response headers. */ + parsedHeaders: DirectoryListHandlesHeaders; + }; + }; diff --git a/sdk/storage/storage-file-share/src/utils/constants.ts b/sdk/storage/storage-file-share/src/utils/constants.ts index c013d315d9d3..554b1e41df78 100644 --- a/sdk/storage/storage-file-share/src/utils/constants.ts +++ b/sdk/storage/storage-file-share/src/utils/constants.ts @@ -1,8 +1,8 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -export const SDK_VERSION: string = "12.13.0"; -export const SERVICE_VERSION: string = "2021-10-04"; +export const SDK_VERSION: string = "12.13.0-beta.1"; +export const SERVICE_VERSION: string = "2021-12-02"; export const FILE_MAX_SIZE_BYTES: number = 4 * 1024 * 1024 * 1024 * 1024; // 4TB export const FILE_RANGE_MAX_SIZE_BYTES: number = 4 * 1024 * 1024; // 4MB diff --git a/sdk/storage/storage-file-share/src/utils/utils.common.ts b/sdk/storage/storage-file-share/src/utils/utils.common.ts index df44148f7bed..299cfdf30926 100644 --- a/sdk/storage/storage-file-share/src/utils/utils.common.ts +++ b/sdk/storage/storage-file-share/src/utils/utils.common.ts @@ -3,6 +3,18 @@ import { AbortSignalLike } from "@azure/abort-controller"; import { HttpHeaders, isNode, URLBuilder } from "@azure/core-http"; +import { + ListFilesAndDirectoriesSegmentResponse as ListFilesAndDirectoriesSegmentResponseInternal, + ListHandlesResponse as ListHandlesResponseInternal, + StringEncoded, +} from "../generated/src/models"; +import { + DirectoryItem, + FileItem, + HandleItem, + ListFilesAndDirectoriesSegmentResponse, + ListHandlesResponse, +} from "../generatedModels"; import { HttpAuthorization } from "../models"; import { HeaderConstants, PathStylePorts, URLConstants } from "./constants"; @@ -553,3 +565,69 @@ export function EscapePath(pathName: string): string { } return split.join("/"); } + +export function StringEncodedToString(name: StringEncoded): string { + if (name.encoded) { + return decodeURIComponent(name.content!); + } else { + return name.content!; + } +} + +export function ConvertInternalResponseOfListFiles( + internalResponse: ListFilesAndDirectoriesSegmentResponseInternal +): ListFilesAndDirectoriesSegmentResponse { + const wrappedResponse = { + ...internalResponse, + prefix: undefined, + directoryPath: StringEncodedToString({ + encoded: internalResponse.encoded, + content: internalResponse.directoryPath, + }), + segment: { + fileItems: internalResponse.segment.fileItems.map((fileItemInternal) => { + const fileItem: FileItem = { + ...fileItemInternal, + name: StringEncodedToString(fileItemInternal.name), + }; + return fileItem; + }), + directoryItems: internalResponse.segment.directoryItems.map((directoryItemInternal) => { + const directoryItem: DirectoryItem = { + ...directoryItemInternal, + name: StringEncodedToString(directoryItemInternal.name), + }; + return directoryItem; + }), + }, + }; + + delete wrappedResponse.encoded; + + const listResponse: ListFilesAndDirectoriesSegmentResponse = wrappedResponse as any; + + if (internalResponse.prefix) { + listResponse.prefix = StringEncodedToString(internalResponse.prefix); + } + + return listResponse; +} + +export function ConvertInternalResponseOfListHandles( + internalResponse: ListHandlesResponseInternal +): ListHandlesResponse { + const wrappedResponse: ListHandlesResponse = { + ...internalResponse, + handleList: internalResponse.handleList + ? internalResponse.handleList.map((handleItemInternal) => { + const handleItem: HandleItem = { + ...handleItemInternal, + path: StringEncodedToString(handleItemInternal.path), + }; + return handleItem; + }) + : undefined, + }; + + return wrappedResponse; +} diff --git a/sdk/storage/storage-file-share/swagger/README.md b/sdk/storage/storage-file-share/swagger/README.md index df179a933d35..a9a3ad982bac 100644 --- a/sdk/storage/storage-file-share/swagger/README.md +++ b/sdk/storage/storage-file-share/swagger/README.md @@ -12,7 +12,7 @@ enable-xml: true generate-metadata: false license-header: MICROSOFT_MIT_NO_VERSION output-folder: ../src/generated -input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/e432d9cc87bfed320d8feead4b448be9481c9181/specification/storage/data-plane/Microsoft.FileStorage/preview/2021-06-08/file.json +input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/0cd0d5c070e85ea7d5816df056eddadc939b898a/specification/storage/data-plane/Microsoft.FileStorage/preview/2021-12-02/file.json model-date-time-as-string: true optional-response-headers: true v3: true @@ -855,13 +855,14 @@ directive: $["modelAsString"] = false; ``` -### Update service version from "2018-06-08" to "2021-10-04" +### Define ShareAccessTier to enum type ```yaml directive: - from: swagger-document - where: $.parameters.ApiVersionParameter - transform: $.enum = [ "2021-10-04" ]; + where: $["definitions"]["StringEncoded"]["properties"] + transform: > + $["content"]["xml"]["name"] = "_"; ``` ![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-js%2Fsdk%2Fstorage%2Fstorage-file-share%2Fswagger%2FREADME.png) diff --git a/sdk/storage/storage-file-share/test/directoryclient.spec.ts b/sdk/storage/storage-file-share/test/directoryclient.spec.ts index a6362e33f1b6..a71ad85b5c6e 100644 --- a/sdk/storage/storage-file-share/test/directoryclient.spec.ts +++ b/sdk/storage/storage-file-share/test/directoryclient.spec.ts @@ -3,9 +3,9 @@ import { assert } from "chai"; -import { getBSU, recorderEnvSetup } from "./utils"; +import { getBSU, isBrowser, recorderEnvSetup } from "./utils"; import { ShareClient, ShareDirectoryClient, FileSystemAttributes } from "../src"; -import { record, Recorder } from "@azure-tools/test-recorder"; +import { isLiveMode, record, Recorder } from "@azure-tools/test-recorder"; import { DirectoryCreateResponse } from "../src/generated/src/models"; import { truncatedISO8061Date } from "../src/utils/utils.common"; import { SpanGraph, setTracer, getYieldedValue } from "@azure/test-utils"; @@ -397,6 +397,184 @@ describe("DirectoryClient", () => { } }); + it("listFilesAndDirectories - with invalid char", async function (this: Context) { + if (isBrowser() && isLiveMode()) { + // Skipped for now as the generating new version SAS token is not supported in pipeline yet. + this.skip(); + } + const subDirClients = []; + const subDirNames = []; + + const dirNameWithInvalidChar = recorder.getUniqueName("dir\uFFFE"); + const dirWithInvalidChar = shareClient.getDirectoryClient(dirNameWithInvalidChar); + await dirWithInvalidChar.create(); + + for (let i = 0; i < 3; i++) { + const subDirClient = dirWithInvalidChar.getDirectoryClient( + recorder.getUniqueName(`dir\uFFFE${i}`) + ); + await subDirClient.create(); + subDirClients.push(subDirClient); + subDirNames.push(subDirClient.name); + } + + const subFileClients = []; + const subFileNames = []; + for (let i = 0; i < 3; i++) { + const subFileClient = dirWithInvalidChar.getFileClient( + recorder.getUniqueName(`file\uFFFE${i}`) + ); + await subFileClient.create(1024); + subFileClients.push(subFileClient); + subFileNames.push(subFileClient.name); + } + + // List all + let result = ( + await dirWithInvalidChar + .listFilesAndDirectories({ + prefix: "", + includeTimestamps: true, + includeEtag: true, + includeAttributes: true, + includePermissionKey: true, + includeExtendedInfo: true, + }) + .byPage() + .next() + ).value; + + assert.ok(result.serviceEndpoint.length > 0); + assert.ok(shareClient.url.indexOf(result.shareName)); + assert.deepStrictEqual(result.continuationToken, ""); + assert.deepStrictEqual(result.segment.directoryItems.length, subDirClients.length); + assert.deepStrictEqual(result.segment.fileItems.length, subFileClients.length); + assert.deepStrictEqual(result.directoryPath, dirNameWithInvalidChar); + + let resultDirNames = []; + for (const entry of result.segment.directoryItems) { + resultDirNames.push(entry.name); + assert.ok(entry.fileId); + assert.ok(entry.attributes); + assert.ok(entry.permissionKey); + assert.ok(entry.properties.creationTime); + assert.ok(entry.properties.lastAccessTime); + assert.ok(entry.properties.changeTime); + assert.ok(entry.properties.lastModified); + assert.ok(entry.properties.etag); + } + + for (const subDirName of subDirNames) { + assert.ok(resultDirNames.includes(subDirName)); + } + + let resultFileNames = []; + for (const entry of result.segment.fileItems) { + resultFileNames.push(entry.name); + assert.ok(entry.fileId); + assert.ok(entry.attributes); + assert.ok(entry.permissionKey); + assert.ok(entry.properties.creationTime); + assert.ok(entry.properties.lastAccessTime); + assert.ok(entry.properties.changeTime); + assert.ok(entry.properties.lastModified); + assert.ok(entry.properties.etag); + } + + for (const subFileName of subFileNames) { + assert.ok(resultFileNames.includes(subFileName)); + } + + // List with dir prefix + result = ( + await dirWithInvalidChar + .listFilesAndDirectories({ + prefix: "dir\uFFFE", + includeTimestamps: true, + includeEtag: true, + includeAttributes: true, + includePermissionKey: true, + includeExtendedInfo: true, + }) + .byPage() + .next() + ).value; + + assert.ok(result.serviceEndpoint.length > 0); + assert.ok(shareClient.url.indexOf(result.shareName)); + assert.deepStrictEqual(result.continuationToken, ""); + assert.deepStrictEqual(result.segment.directoryItems.length, subDirClients.length); + assert.deepStrictEqual(result.segment.fileItems.length, 0); + assert.deepStrictEqual(result.prefix, "dir\uFFFE"); + assert.deepStrictEqual(result.directoryPath, dirNameWithInvalidChar); + + resultDirNames = []; + for (const entry of result.segment.directoryItems) { + resultDirNames.push(entry.name); + assert.ok(entry.fileId); + assert.ok(entry.attributes); + assert.ok(entry.permissionKey); + assert.ok(entry.properties.creationTime); + assert.ok(entry.properties.lastAccessTime); + assert.ok(entry.properties.changeTime); + assert.ok(entry.properties.lastModified); + assert.ok(entry.properties.etag); + } + + for (const subDirName of subDirNames) { + assert.ok(resultDirNames.includes(subDirName)); + } + + // List with file prefix + result = ( + await dirWithInvalidChar + .listFilesAndDirectories({ + prefix: "file\uFFFE", + includeTimestamps: true, + includeEtag: true, + includeAttributes: true, + includePermissionKey: true, + includeExtendedInfo: true, + }) + .byPage() + .next() + ).value; + + assert.ok(result.serviceEndpoint.length > 0); + assert.ok(shareClient.url.indexOf(result.shareName)); + assert.deepStrictEqual(result.continuationToken, ""); + assert.deepStrictEqual(result.segment.directoryItems.length, 0); + assert.deepStrictEqual(result.segment.fileItems.length, subFileClients.length); + assert.deepStrictEqual(result.prefix, "file\uFFFE"); + assert.deepStrictEqual(result.directoryPath, dirNameWithInvalidChar); + + resultFileNames = []; + for (const entry of result.segment.fileItems) { + resultFileNames.push(entry.name); + assert.ok(entry.fileId); + assert.ok(entry.attributes); + assert.ok(entry.permissionKey); + assert.ok(entry.properties.creationTime); + assert.ok(entry.properties.lastAccessTime); + assert.ok(entry.properties.changeTime); + assert.ok(entry.properties.lastModified); + assert.ok(entry.properties.etag); + } + + for (const subFileName of subFileNames) { + assert.ok(resultFileNames.includes(subFileName)); + } + + for (const subFile of subFileClients) { + await subFile.delete(); + } + for (const subDir of subDirClients) { + await subDir.delete(); + } + + dirWithInvalidChar.delete(); + }); + it("listFilesAndDirectories under root directory", async () => { const subDirClients = []; const rootDirClient = shareClient.getDirectoryClient(""); @@ -873,6 +1051,29 @@ describe("DirectoryClient", () => { } }); + it("listHandles for directory with Invalid Char should work", async function (this: Context) { + if (isBrowser() && isLiveMode()) { + // Skipped for now as the generating new version SAS token is not supported in pipeline yet. + this.skip(); + } + + const dirNameWithInvalidChar = recorder.getUniqueName("dir\uFFFE"); + const dirWithInvalidChar = shareClient.getDirectoryClient(dirNameWithInvalidChar); + await dirWithInvalidChar.create(); + + const result = (await dirWithInvalidChar.listHandles().byPage().next()).value; + + if (result.handleList !== undefined && result.handleList.length > 0) { + const handle = result.handleList[0]; + assert.notDeepEqual(handle.handleId, undefined); + assert.notDeepEqual(handle.path, undefined); + assert.notDeepEqual(handle.fileId, undefined); + assert.notDeepEqual(handle.sessionId, undefined); + assert.notDeepEqual(handle.clientIp, undefined); + assert.notDeepEqual(handle.openTime, undefined); + } + }); + it("forceCloseAllHandles should work", async () => { // TODO: Open or create a handle; Currently can only be done manually; No REST APIs for creating handles - Has to be tested locally diff --git a/sdk/storage/storage-file-share/test/fileclient.spec.ts b/sdk/storage/storage-file-share/test/fileclient.spec.ts index e03210717394..6e8172aa90d7 100644 --- a/sdk/storage/storage-file-share/test/fileclient.spec.ts +++ b/sdk/storage/storage-file-share/test/fileclient.spec.ts @@ -16,7 +16,13 @@ import { DirectoryCreateResponse } from "../src/generated/src/models"; import { Pipeline } from "../src/Pipeline"; import { FILE_MAX_SIZE_BYTES } from "../src/utils/constants"; import { truncatedISO8061Date } from "../src/utils/utils.common"; -import { bodyToString, compareBodyWithUint8Array, getBSU, recorderEnvSetup } from "./utils"; +import { + bodyToString, + compareBodyWithUint8Array, + getBSU, + isBrowser, + recorderEnvSetup, +} from "./utils"; import { MockPolicyFactory } from "./utils/MockPolicyFactory"; describe("FileClient", () => { @@ -847,6 +853,29 @@ describe("FileClient", () => { } }); + it("listHandles for file with Invalid Char should work", async function (this: Context) { + if (isBrowser() && isLiveMode()) { + // Skipped for now as the generating new version SAS token is not supported in pipeline yet. + this.skip(); + } + const fileNameWithInvalidChar = recorder.getUniqueName("file\uFFFE"); + const fileWithInvalidChar = shareClient + .getDirectoryClient("") + .getFileClient(fileNameWithInvalidChar); + await fileWithInvalidChar.create(10); + + const result = (await fileWithInvalidChar.listHandles().byPage().next()).value; + if (result.handleList !== undefined && result.handleList.length > 0) { + const handle = result.handleList[0]; + assert.notDeepEqual(handle.handleId, undefined); + assert.notDeepEqual(handle.path, undefined); + assert.notDeepEqual(handle.fileId, undefined); + assert.notDeepEqual(handle.sessionId, undefined); + assert.notDeepEqual(handle.clientIp, undefined); + assert.notDeepEqual(handle.openTime, undefined); + } + }); + it("forceCloseAllHandles should work", async () => { await fileClient.create(10);