diff --git a/sdk/storage/azure-storage-common/src/main/java/com/azure/storage/common/Utility.java b/sdk/storage/azure-storage-common/src/main/java/com/azure/storage/common/Utility.java index ba3f1bc1fe5c..86cfcc78128f 100644 --- a/sdk/storage/azure-storage-common/src/main/java/com/azure/storage/common/Utility.java +++ b/sdk/storage/azure-storage-common/src/main/java/com/azure/storage/common/Utility.java @@ -5,6 +5,7 @@ import com.azure.core.exception.UnexpectedLengthException; import com.azure.core.util.CoreUtils; +import com.azure.core.util.UrlBuilder; import com.azure.core.util.logging.ClientLogger; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -154,6 +155,24 @@ private static String encode(final String stringToEncode) { } } + /** + * Performs a safe encoding of a url string, only encoding the path. + * + * @param url The url to encode. + * @return The encoded url. + */ + public static String encodeUrlPath(String url) { + /* Deconstruct the URL and reconstruct it making sure the path is encoded. */ + UrlBuilder builder = UrlBuilder.parse(url); + String path = builder.getPath(); + if (path.startsWith("/")) { + path = path.substring(1); + } + path = Utility.urlEncode(Utility.urlDecode(path)); + builder.setPath(path); + return builder.toString(); + } + /** * Given a String representing a date in a form of the ISO8601 pattern, generates a Date representing it with up to * millisecond precision. diff --git a/sdk/storage/azure-storage-file-share/CHANGELOG.md b/sdk/storage/azure-storage-file-share/CHANGELOG.md index 533e8202bd9a..37ac3824c484 100644 --- a/sdk/storage/azure-storage-file-share/CHANGELOG.md +++ b/sdk/storage/azure-storage-file-share/CHANGELOG.md @@ -1,6 +1,7 @@ # Release History ## 12.5.0-beta.1 (Unreleased) +- Fixed bug in ShareFileClient.uploadRangeFromUrl and ShareFileClient.beginCopy where sourceUrl was not getting encoded. ## 12.4.1 (2020-05-06) - Updated `azure-core` version to `1.5.0` to pickup fixes for percent encoding `UTF-8` and invalid leading bytes in a body string. diff --git a/sdk/storage/azure-storage-file-share/src/main/java/com/azure/storage/file/share/ShareFileAsyncClient.java b/sdk/storage/azure-storage-file-share/src/main/java/com/azure/storage/file/share/ShareFileAsyncClient.java index 2b65badddef0..df7be14056d7 100644 --- a/sdk/storage/azure-storage-file-share/src/main/java/com/azure/storage/file/share/ShareFileAsyncClient.java +++ b/sdk/storage/azure-storage-file-share/src/main/java/com/azure/storage/file/share/ShareFileAsyncClient.java @@ -20,6 +20,7 @@ import com.azure.core.util.polling.PollResponse; import com.azure.core.util.polling.PollerFlux; import com.azure.storage.common.StorageSharedKeyCredential; +import com.azure.storage.common.Utility; import com.azure.storage.common.implementation.Constants; import com.azure.storage.common.implementation.SasImplUtils; import com.azure.storage.common.implementation.StorageImplUtils; @@ -427,11 +428,13 @@ public PollerFlux beginCopy(String sourceUrl, FileSmbPr .setIgnoreReadOnly(ignoreReadOnly) .setSetArchiveAttribute(setArchiveAttribute); + final String copySource = Utility.encodeUrlPath(sourceUrl); + return new PollerFlux<>(interval, (pollingContext) -> { try { return withContext(context -> azureFileStorageClient.files() - .startCopyWithRestResponseAsync(shareName, filePath, sourceUrl, null, + .startCopyWithRestResponseAsync(shareName, filePath, copySource, null, metadata, filePermission, tempSmbProperties.getFilePermissionKey(), finalRequestConditions.getLeaseId(), copyFileSmbInfo, context)) .map(response -> { @@ -1382,8 +1385,10 @@ Mono> uploadRangeFromUrlWithResponse(l ShareFileRange sourceRange = new ShareFileRange(sourceOffset, sourceOffset + length - 1); context = context == null ? Context.NONE : context; + final String copySource = Utility.encodeUrlPath(sourceUrl); + return azureFileStorageClient.files() - .uploadRangeFromURLWithRestResponseAsync(shareName, filePath, destinationRange.toString(), sourceUrl, 0, + .uploadRangeFromURLWithRestResponseAsync(shareName, filePath, destinationRange.toString(), copySource, 0, null, sourceRange.toString(), null, destinationRequestConditions.getLeaseId(), null, context.addData(AZ_TRACING_NAMESPACE_KEY, STORAGE_TRACING_NAMESPACE_VALUE)) .map(this::uploadRangeFromUrlResponse); diff --git a/sdk/storage/azure-storage-file-share/src/test/java/com/azure/storage/file/share/APISpec.groovy b/sdk/storage/azure-storage-file-share/src/test/java/com/azure/storage/file/share/APISpec.groovy index a28720394bfa..dda88c8303ee 100644 --- a/sdk/storage/azure-storage-file-share/src/test/java/com/azure/storage/file/share/APISpec.groovy +++ b/sdk/storage/azure-storage-file-share/src/test/java/com/azure/storage/file/share/APISpec.groovy @@ -64,9 +64,6 @@ class APISpec extends Specification { static TestMode testMode = getTestMode() String connectionString - // If debugging is enabled, recordings cannot run as there can only be one proxy at a time. - static boolean enableDebugging = false - /* Note that this value is only used to check if we are depending on the received etag. This value will not actually be used. diff --git a/sdk/storage/azure-storage-file-share/src/test/java/com/azure/storage/file/share/FileAPITests.groovy b/sdk/storage/azure-storage-file-share/src/test/java/com/azure/storage/file/share/FileAPITests.groovy index 25ba8311d143..f40810cc9dd7 100644 --- a/sdk/storage/azure-storage-file-share/src/test/java/com/azure/storage/file/share/FileAPITests.groovy +++ b/sdk/storage/azure-storage-file-share/src/test/java/com/azure/storage/file/share/FileAPITests.groovy @@ -439,8 +439,10 @@ class FileAPITests extends APISpec { FileTestHelper.deleteFilesIfExists(testFolder.getPath()) } + @Unroll def "Upload range from URL"() { given: + primaryFileClient = fileBuilderHelper(interceptorManager, shareName, filePath + pathSuffix).buildFileClient() primaryFileClient.create(1024) def data = "The quick brown fox jumps over the lazy dog" def sourceOffset = 5 @@ -458,7 +460,7 @@ class FileAPITests extends APISpec { .encode() when: - ShareFileClient client = fileBuilderHelper(interceptorManager, shareName, "destination") + ShareFileClient client = fileBuilderHelper(interceptorManager, shareName, "destination" + pathSuffix) .endpoint(primaryFileClient.getFileUrl().toString()) .buildFileClient() @@ -473,10 +475,16 @@ class FileAPITests extends APISpec { for(int i = 0; i < length; i++) { result.charAt(destinationOffset + i) == data.charAt(sourceOffset + i) } + where: + pathSuffix || _ + "" || _ + "ü1ü" || _ /* Something that needs to be url encoded. */ } + @Unroll def "Start copy"() { given: + primaryFileClient = fileBuilderHelper(interceptorManager, shareName, filePath + pathSuffix).buildFileClient() primaryFileClient.create(1024) // TODO: Need another test account if using SAS token for authentication. // TODO: SasToken auth cannot be used until the logging redaction @@ -491,6 +499,11 @@ class FileAPITests extends APISpec { then: assert pollResponse.getValue().getCopyId() != null + + where: + pathSuffix || _ + "" || _ + "ü1ü" || _ /* Something that needs to be url encoded. */ } @Unroll diff --git a/sdk/storage/azure-storage-file-share/src/test/resources/session-records/FileAPITestsStartCopy0.json b/sdk/storage/azure-storage-file-share/src/test/resources/session-records/FileAPITestsStartCopy0.json new file mode 100644 index 000000000000..634b149e72d4 --- /dev/null +++ b/sdk/storage/azure-storage-file-share/src/test/resources/session-records/FileAPITestsStartCopy0.json @@ -0,0 +1,116 @@ +{ + "networkCallRecords" : [ { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsstartcopy0fileapitestsstartcopy09c324747c5eb?restype=share", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "b980efd1-7393-4fcc-b12c-448c30f5a465" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "ETag" : "0x8D803E1CE3A4D05", + "Last-Modified" : "Fri, 29 May 2020 15:06:03 GMT", + "retry-after" : "0", + "Content-Length" : "0", + "StatusCode" : "201", + "x-ms-request-id" : "23e454f3-d01a-0015-0bca-358588000000", + "Date" : "Fri, 29 May 2020 15:06:02 GMT", + "x-ms-client-request-id" : "b980efd1-7393-4fcc-b12c-448c30f5a465" + }, + "Exception" : null + }, { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsstartcopy0fileapitestsstartcopy09c324747c5eb/fileapitestsstartcopy0fileapitestsstartcopy09c3795483c2d", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "d3a7310a-1ce3-4389-930d-f71a381a00cd" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "x-ms-file-permission-key" : "15581347578553677299*8114634751575874941", + "x-ms-file-id" : "13835128424026341376", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-file-creation-time" : "2020-05-29T15:06:05.9956406Z", + "Last-Modified" : "Fri, 29 May 2020 15:06:05 GMT", + "retry-after" : "0", + "StatusCode" : "201", + "x-ms-request-server-encrypted" : "true", + "Date" : "Fri, 29 May 2020 15:06:05 GMT", + "ETag" : "0x8D803E1CFB158B6", + "x-ms-file-attributes" : "Archive", + "x-ms-file-change-time" : "2020-05-29T15:06:05.9956406Z", + "x-ms-file-parent-id" : "0", + "Content-Length" : "0", + "x-ms-request-id" : "b9433e0a-501a-000b-14ca-356950000000", + "x-ms-client-request-id" : "d3a7310a-1ce3-4389-930d-f71a381a00cd", + "x-ms-file-last-write-time" : "2020-05-29T15:06:05.9956406Z" + }, + "Exception" : null + }, { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsstartcopy0fileapitestsstartcopy09c324747c5eb/fileapitestsstartcopy0fileapitestsstartcopy09c3795483c2d", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "69ed53a4-5a40-47af-a797-cb9b733ceac8" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-copy-id" : "f8b2b87c-8160-4e90-8f79-cf4121be5117", + "ETag" : "0x8D803E1D238EE14", + "Last-Modified" : "Fri, 29 May 2020 15:06:10 GMT", + "retry-after" : "0", + "Content-Length" : "0", + "x-ms-copy-status" : "success", + "StatusCode" : "202", + "x-ms-request-id" : "e17b8d7d-701a-0041-6eca-35cadf000000", + "Date" : "Fri, 29 May 2020 15:06:09 GMT", + "x-ms-client-request-id" : "69ed53a4-5a40-47af-a797-cb9b733ceac8" + }, + "Exception" : null + }, { + "Method" : "HEAD", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsstartcopy0fileapitestsstartcopy09c324747c5eb/fileapitestsstartcopy0fileapitestsstartcopy09c3795483c2d", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "3f208c80-76be-4adf-88a8-cbdf29ac3ae0" + }, + "Response" : { + "x-ms-lease-status" : "unlocked", + "x-ms-file-id" : "13835128424026341376", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-file-creation-time" : "2020-05-29T15:06:10.2396436Z", + "x-ms-lease-state" : "available", + "Last-Modified" : "Fri, 29 May 2020 15:06:10 GMT", + "retry-after" : "0", + "StatusCode" : "200", + "x-ms-file-attributes" : "Archive", + "Content-Length" : "1024", + "x-ms-request-id" : "dd9309d6-401a-0028-7bca-35f393000000", + "Content-Type" : "application/octet-stream", + "x-ms-file-permission-key" : "15581347578553677299*8114634751575874941", + "x-ms-version" : "2019-07-07", + "x-ms-copy-id" : "f8b2b87c-8160-4e90-8f79-cf4121be5117", + "x-ms-copy-source" : "https://gapradev.file.core.windows.net/fileapitestsstartcopy0fileapitestsstartcopy09c324747c5eb%2Ffileapitestsstartcopy0fileapitestsstartcopy09c3795483c2d", + "x-ms-copy-progress" : "1024/1024", + "Date" : "Fri, 29 May 2020 15:06:12 GMT", + "x-ms-copy-completion-time" : "Fri, 29 May 2020 15:06:10 GMT", + "x-ms-server-encrypted" : "true", + "x-ms-type" : "File", + "ETag" : "0x8D803E1D238EE14", + "Vary" : "Origin", + "x-ms-file-change-time" : "2020-05-29T15:06:10.2396436Z", + "x-ms-file-parent-id" : "0", + "x-ms-copy-status" : "success", + "x-ms-client-request-id" : "3f208c80-76be-4adf-88a8-cbdf29ac3ae0", + "x-ms-file-last-write-time" : "2020-05-29T15:06:10.2396436Z" + }, + "Exception" : null + } ], + "variables" : [ "fileapitestsstartcopy0fileapitestsstartcopy09c324747c5eb", "fileapitestsstartcopy0fileapitestsstartcopy09c3795483c2d" ] +} \ No newline at end of file diff --git a/sdk/storage/azure-storage-file-share/src/test/resources/session-records/FileAPITestsStartCopy1.json b/sdk/storage/azure-storage-file-share/src/test/resources/session-records/FileAPITestsStartCopy1.json new file mode 100644 index 000000000000..d1f600b4d139 --- /dev/null +++ b/sdk/storage/azure-storage-file-share/src/test/resources/session-records/FileAPITestsStartCopy1.json @@ -0,0 +1,116 @@ +{ + "networkCallRecords" : [ { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsstartcopy1fileapitestsstartcopy1caa430668050?restype=share", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "a98df336-19b5-4b31-b82f-ecdb575437dc" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "ETag" : "0x8D803E1D6BA3D4A", + "Last-Modified" : "Fri, 29 May 2020 15:06:17 GMT", + "retry-after" : "0", + "Content-Length" : "0", + "StatusCode" : "201", + "x-ms-request-id" : "60169b0f-001a-0039-32ca-356927000000", + "Date" : "Fri, 29 May 2020 15:06:17 GMT", + "x-ms-client-request-id" : "a98df336-19b5-4b31-b82f-ecdb575437dc" + }, + "Exception" : null + }, { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsstartcopy1fileapitestsstartcopy1caa430668050/fileapitestsstartcopy1fileapitestsstartcopy1caa068238373%C3%BC1%C3%BC", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "8691ab09-8f8f-497b-b08e-080981c031a8" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "x-ms-file-permission-key" : "15581347578553677299*8114634751575874941", + "x-ms-file-id" : "13835128424026341376", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-file-creation-time" : "2020-05-29T15:06:19.8696601Z", + "Last-Modified" : "Fri, 29 May 2020 15:06:19 GMT", + "retry-after" : "0", + "StatusCode" : "201", + "x-ms-request-server-encrypted" : "true", + "Date" : "Fri, 29 May 2020 15:06:19 GMT", + "ETag" : "0x8D803E1D7F65A99", + "x-ms-file-attributes" : "Archive", + "x-ms-file-change-time" : "2020-05-29T15:06:19.8696601Z", + "x-ms-file-parent-id" : "0", + "Content-Length" : "0", + "x-ms-request-id" : "6f7958e4-201a-003e-4fca-350544000000", + "x-ms-client-request-id" : "8691ab09-8f8f-497b-b08e-080981c031a8", + "x-ms-file-last-write-time" : "2020-05-29T15:06:19.8696601Z" + }, + "Exception" : null + }, { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsstartcopy1fileapitestsstartcopy1caa430668050/fileapitestsstartcopy1fileapitestsstartcopy1caa068238373%C3%BC1%C3%BC", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "22f3f717-d5b6-4de0-ba54-a8e424bcd9cb" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-copy-id" : "75fe1060-e02b-4ead-ac6f-9d468d58be98", + "ETag" : "0x8D803E1D85A749A", + "Last-Modified" : "Fri, 29 May 2020 15:06:20 GMT", + "retry-after" : "0", + "Content-Length" : "0", + "x-ms-copy-status" : "success", + "StatusCode" : "202", + "x-ms-request-id" : "e17b8d96-701a-0041-71ca-35cadf000000", + "Date" : "Fri, 29 May 2020 15:06:20 GMT", + "x-ms-client-request-id" : "22f3f717-d5b6-4de0-ba54-a8e424bcd9cb" + }, + "Exception" : null + }, { + "Method" : "HEAD", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsstartcopy1fileapitestsstartcopy1caa430668050/fileapitestsstartcopy1fileapitestsstartcopy1caa068238373%C3%BC1%C3%BC", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "e4a16991-1fa6-4314-9a96-b32386511246" + }, + "Response" : { + "x-ms-lease-status" : "unlocked", + "x-ms-file-id" : "13835128424026341376", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-file-creation-time" : "2020-05-29T15:06:20.5256858Z", + "x-ms-lease-state" : "available", + "Last-Modified" : "Fri, 29 May 2020 15:06:20 GMT", + "retry-after" : "0", + "StatusCode" : "200", + "x-ms-file-attributes" : "Archive", + "Content-Length" : "1024", + "x-ms-request-id" : "04433d5a-e01a-000e-50ca-35bb8b000000", + "Content-Type" : "application/octet-stream", + "x-ms-file-permission-key" : "15581347578553677299*8114634751575874941", + "x-ms-version" : "2019-07-07", + "x-ms-copy-id" : "75fe1060-e02b-4ead-ac6f-9d468d58be98", + "x-ms-copy-source" : "https://gapradev.file.core.windows.net/fileapitestsstartcopy1fileapitestsstartcopy1caa430668050%2Ffileapitestsstartcopy1fileapitestsstartcopy1caa068238373%C3%BC1%C3%BC", + "x-ms-copy-progress" : "1024/1024", + "Date" : "Fri, 29 May 2020 15:06:21 GMT", + "x-ms-copy-completion-time" : "Fri, 29 May 2020 15:06:20 GMT", + "x-ms-server-encrypted" : "true", + "x-ms-type" : "File", + "ETag" : "0x8D803E1D85A749A", + "Vary" : "Origin", + "x-ms-file-change-time" : "2020-05-29T15:06:20.5256858Z", + "x-ms-file-parent-id" : "0", + "x-ms-copy-status" : "success", + "x-ms-client-request-id" : "e4a16991-1fa6-4314-9a96-b32386511246", + "x-ms-file-last-write-time" : "2020-05-29T15:06:20.5256858Z" + }, + "Exception" : null + } ], + "variables" : [ "fileapitestsstartcopy1fileapitestsstartcopy1caa430668050", "fileapitestsstartcopy1fileapitestsstartcopy1caa068238373" ] +} \ No newline at end of file diff --git a/sdk/storage/azure-storage-file-share/src/test/resources/session-records/FileAPITestsUploadRangeFromURL0.json b/sdk/storage/azure-storage-file-share/src/test/resources/session-records/FileAPITestsUploadRangeFromURL0.json new file mode 100644 index 000000000000..3e910e837ca9 --- /dev/null +++ b/sdk/storage/azure-storage-file-share/src/test/resources/session-records/FileAPITestsUploadRangeFromURL0.json @@ -0,0 +1,166 @@ +{ + "networkCallRecords" : [ { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsuploadrangefromurl0356436b840a16a29b?restype=share", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "0f023b43-2cf5-4b57-a522-83332c33e957" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "ETag" : "0x8D8064B7236C254", + "Last-Modified" : "Mon, 01 Jun 2020 16:47:18 GMT", + "retry-after" : "0", + "Content-Length" : "0", + "StatusCode" : "201", + "x-ms-request-id" : "3577e865-e01a-000e-0434-38bb8b000000", + "Date" : "Mon, 01 Jun 2020 16:47:17 GMT", + "x-ms-client-request-id" : "0f023b43-2cf5-4b57-a522-83332c33e957" + }, + "Exception" : null + }, { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsuploadrangefromurl0356436b840a16a29b/fileapitestsuploadrangefromurl04156651abf57d203e", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "b25fc92c-25ca-4183-9e85-691747f54f46" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "x-ms-file-permission-key" : "15581347578553677299*8114634751575874941", + "x-ms-file-id" : "13835128424026341376", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-file-creation-time" : "2020-06-01T16:47:19.3404306Z", + "Last-Modified" : "Mon, 01 Jun 2020 16:47:19 GMT", + "retry-after" : "0", + "StatusCode" : "201", + "x-ms-request-server-encrypted" : "true", + "Date" : "Mon, 01 Jun 2020 16:47:19 GMT", + "ETag" : "0x8D8064B72ED7792", + "x-ms-file-attributes" : "Archive", + "x-ms-file-change-time" : "2020-06-01T16:47:19.3404306Z", + "x-ms-file-parent-id" : "0", + "Content-Length" : "0", + "x-ms-request-id" : "afa71771-601a-0000-6434-38923b000000", + "x-ms-client-request-id" : "b25fc92c-25ca-4183-9e85-691747f54f46", + "x-ms-file-last-write-time" : "2020-06-01T16:47:19.3404306Z" + }, + "Exception" : null + }, { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsuploadrangefromurl0356436b840a16a29b/fileapitestsuploadrangefromurl04156651abf57d203e?comp=range", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "83dd6e0d-7e92-4ec5-abd0-8a7ece4be3f0", + "Content-Type" : "application/octet-stream" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "ETag" : "0x8D8064B736E3F88", + "Last-Modified" : "Mon, 01 Jun 2020 16:47:20 GMT", + "retry-after" : "0", + "Content-Length" : "0", + "StatusCode" : "201", + "x-ms-request-id" : "98168fd4-301a-000d-7534-385aef000000", + "x-ms-request-server-encrypted" : "true", + "Date" : "Mon, 01 Jun 2020 16:47:20 GMT", + "x-ms-client-request-id" : "83dd6e0d-7e92-4ec5-abd0-8a7ece4be3f0", + "Content-MD5" : "nhB9nTcrtoJr2B01QqQZ1g==" + }, + "Exception" : null + }, { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsuploadrangefromurl0356436b840a16a29b/fileapitestsuploadrangefromurl04156651abf57d203e", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "abc84cab-a55d-4967-8867-8dd0f4de94b3" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "x-ms-file-permission-key" : "15581347578553677299*8114634751575874941", + "x-ms-file-id" : "13835128424026341376", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-file-creation-time" : "2020-06-01T16:47:22.2943966Z", + "Last-Modified" : "Mon, 01 Jun 2020 16:47:22 GMT", + "retry-after" : "0", + "StatusCode" : "201", + "x-ms-request-server-encrypted" : "true", + "Date" : "Mon, 01 Jun 2020 16:47:21 GMT", + "ETag" : "0x8D8064B74B034DE", + "x-ms-file-attributes" : "Archive", + "x-ms-file-change-time" : "2020-06-01T16:47:22.2943966Z", + "x-ms-file-parent-id" : "0", + "Content-Length" : "0", + "x-ms-request-id" : "7d887b83-901a-003b-0834-38d79f000000", + "x-ms-client-request-id" : "abc84cab-a55d-4967-8867-8dd0f4de94b3", + "x-ms-file-last-write-time" : "2020-06-01T16:47:22.2943966Z" + }, + "Exception" : null + }, { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsuploadrangefromurl0356436b840a16a29b/fileapitestsuploadrangefromurl04156651abf57d203e?comp=range", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "a5bf371f-8a4c-48ef-b311-28af3ee4c25e" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "ETag" : "0x8D8064B762AC5DA", + "x-ms-content-crc64" : "9TRwg1LzFO0=", + "Last-Modified" : "Mon, 01 Jun 2020 16:47:24 GMT", + "retry-after" : "0", + "Content-Length" : "0", + "StatusCode" : "201", + "x-ms-request-id" : "891abf77-401a-0038-0f34-3836fb000000", + "x-ms-request-server-encrypted" : "true", + "Date" : "Mon, 01 Jun 2020 16:47:24 GMT", + "x-ms-client-request-id" : "a5bf371f-8a4c-48ef-b311-28af3ee4c25e" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsuploadrangefromurl0356436b840a16a29b/fileapitestsuploadrangefromurl04156651abf57d203e", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "c57c90ab-35fc-43bd-b9c7-302a2b1f32d5" + }, + "Response" : { + "x-ms-lease-status" : "unlocked", + "x-ms-file-id" : "13835128424026341376", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-file-creation-time" : "2020-06-01T16:47:22.2943966Z", + "Access-Control-Allow-Origin" : "*", + "x-ms-lease-state" : "available", + "Last-Modified" : "Mon, 01 Jun 2020 16:47:24 GMT", + "retry-after" : "0", + "StatusCode" : "200", + "x-ms-file-attributes" : "Archive", + "Content-Length" : "1024", + "x-ms-request-id" : "6ab8d6e7-501a-000b-6e34-386950000000", + "Body" : "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]", + "Content-Type" : "application/octet-stream", + "x-ms-version" : "2019-07-07", + "x-ms-file-permission-key" : "15581347578553677299*8114634751575874941", + "Date" : "Mon, 01 Jun 2020 16:47:27 GMT", + "Accept-Ranges" : "bytes", + "x-ms-server-encrypted" : "true", + "x-ms-type" : "File", + "ETag" : "0x8D8064B762AC5DA", + "x-ms-file-change-time" : "2020-06-01T16:47:22.2943966Z", + "x-ms-file-parent-id" : "0", + "x-ms-client-request-id" : "c57c90ab-35fc-43bd-b9c7-302a2b1f32d5", + "x-ms-file-last-write-time" : "2020-06-01T16:47:22.2943966Z" + }, + "Exception" : null + } ], + "variables" : [ "fileapitestsuploadrangefromurl0356436b840a16a29b", "fileapitestsuploadrangefromurl04156651abf57d203e", "2020-06-01T16:47:22.299618100Z" ] +} \ No newline at end of file diff --git a/sdk/storage/azure-storage-file-share/src/test/resources/session-records/FileAPITestsUploadRangeFromURL1.json b/sdk/storage/azure-storage-file-share/src/test/resources/session-records/FileAPITestsUploadRangeFromURL1.json new file mode 100644 index 000000000000..81a14e980ec6 --- /dev/null +++ b/sdk/storage/azure-storage-file-share/src/test/resources/session-records/FileAPITestsUploadRangeFromURL1.json @@ -0,0 +1,166 @@ +{ + "networkCallRecords" : [ { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsuploadrangefromurl116457cd32f224a01d?restype=share", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "a115c005-2388-4641-90bd-7724e9eeb5c4" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "ETag" : "0x8D8064B7DCC5D42", + "Last-Modified" : "Mon, 01 Jun 2020 16:47:37 GMT", + "retry-after" : "0", + "Content-Length" : "0", + "StatusCode" : "201", + "x-ms-request-id" : "a547c911-101a-000a-1234-38368c000000", + "Date" : "Mon, 01 Jun 2020 16:47:37 GMT", + "x-ms-client-request-id" : "a115c005-2388-4641-90bd-7724e9eeb5c4" + }, + "Exception" : null + }, { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsuploadrangefromurl116457cd32f224a01d/fileapitestsuploadrangefromurl105161076a6f833381%C3%BC1%C3%BC", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "ff36f642-bd83-46a3-9253-d9128dca9039" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "x-ms-file-permission-key" : "15581347578553677299*8114634751575874941", + "x-ms-file-id" : "13835128424026341376", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-file-creation-time" : "2020-06-01T16:47:38.7162975Z", + "Last-Modified" : "Mon, 01 Jun 2020 16:47:38 GMT", + "retry-after" : "0", + "StatusCode" : "201", + "x-ms-request-server-encrypted" : "true", + "Date" : "Mon, 01 Jun 2020 16:47:37 GMT", + "ETag" : "0x8D8064B7E79FD5F", + "x-ms-file-attributes" : "Archive", + "x-ms-file-change-time" : "2020-06-01T16:47:38.7162975Z", + "x-ms-file-parent-id" : "0", + "Content-Length" : "0", + "x-ms-request-id" : "6ab8d6f8-501a-000b-7134-386950000000", + "x-ms-client-request-id" : "ff36f642-bd83-46a3-9253-d9128dca9039", + "x-ms-file-last-write-time" : "2020-06-01T16:47:38.7162975Z" + }, + "Exception" : null + }, { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsuploadrangefromurl116457cd32f224a01d/fileapitestsuploadrangefromurl105161076a6f833381%C3%BC1%C3%BC?comp=range", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "94ad6606-410d-4552-ad41-d448a9b50042", + "Content-Type" : "application/octet-stream" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "ETag" : "0x8D8064B801F6F4E", + "Last-Modified" : "Mon, 01 Jun 2020 16:47:41 GMT", + "retry-after" : "0", + "Content-Length" : "0", + "StatusCode" : "201", + "x-ms-request-id" : "ad2cb07e-f01a-002d-3734-382148000000", + "x-ms-request-server-encrypted" : "true", + "Date" : "Mon, 01 Jun 2020 16:47:41 GMT", + "x-ms-client-request-id" : "94ad6606-410d-4552-ad41-d448a9b50042", + "Content-MD5" : "nhB9nTcrtoJr2B01QqQZ1g==" + }, + "Exception" : null + }, { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsuploadrangefromurl116457cd32f224a01d/fileapitestsuploadrangefromurl105161076a6f833381%C3%BC1%C3%BC", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "c767e078-5443-4441-83a1-e896bb1bf12f" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "x-ms-file-permission-key" : "15581347578553677299*8114634751575874941", + "x-ms-file-id" : "13835128424026341376", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-file-creation-time" : "2020-06-01T16:47:43.8642857Z", + "Last-Modified" : "Mon, 01 Jun 2020 16:47:43 GMT", + "retry-after" : "0", + "StatusCode" : "201", + "x-ms-request-server-encrypted" : "true", + "Date" : "Mon, 01 Jun 2020 16:47:43 GMT", + "ETag" : "0x8D8064B818B82A9", + "x-ms-file-attributes" : "Archive", + "x-ms-file-change-time" : "2020-06-01T16:47:43.8642857Z", + "x-ms-file-parent-id" : "0", + "Content-Length" : "0", + "x-ms-request-id" : "f31f6f8b-d01a-003a-7e34-388843000000", + "x-ms-client-request-id" : "c767e078-5443-4441-83a1-e896bb1bf12f", + "x-ms-file-last-write-time" : "2020-06-01T16:47:43.8642857Z" + }, + "Exception" : null + }, { + "Method" : "PUT", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsuploadrangefromurl116457cd32f224a01d/fileapitestsuploadrangefromurl105161076a6f833381%C3%BC1%C3%BC?comp=range", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "1b7891ea-3650-4ae0-8b0a-c939be9d13ed" + }, + "Response" : { + "x-ms-version" : "2019-07-07", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "ETag" : "0x8D8064B83B7B059", + "x-ms-content-crc64" : "9TRwg1LzFO0=", + "Last-Modified" : "Mon, 01 Jun 2020 16:47:47 GMT", + "retry-after" : "0", + "Content-Length" : "0", + "StatusCode" : "201", + "x-ms-request-id" : "a3120287-a01a-000f-4d34-38e457000000", + "x-ms-request-server-encrypted" : "true", + "Date" : "Mon, 01 Jun 2020 16:47:47 GMT", + "x-ms-client-request-id" : "1b7891ea-3650-4ae0-8b0a-c939be9d13ed" + }, + "Exception" : null + }, { + "Method" : "GET", + "Uri" : "https://REDACTED.file.core.windows.net/fileapitestsuploadrangefromurl116457cd32f224a01d/fileapitestsuploadrangefromurl105161076a6f833381%C3%BC1%C3%BC", + "Headers" : { + "x-ms-version" : "2019-07-07", + "User-Agent" : "azsdk-java-azure-storage-file-share/12.5.0-beta.1 (11.0.7; Windows 10 10.0)", + "x-ms-client-request-id" : "a06a575f-31ac-45b1-831f-0e524825d227" + }, + "Response" : { + "x-ms-lease-status" : "unlocked", + "x-ms-file-id" : "13835128424026341376", + "Server" : "Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0", + "x-ms-file-creation-time" : "2020-06-01T16:47:43.8642857Z", + "Access-Control-Allow-Origin" : "*", + "x-ms-lease-state" : "available", + "Last-Modified" : "Mon, 01 Jun 2020 16:47:47 GMT", + "retry-after" : "0", + "StatusCode" : "200", + "x-ms-file-attributes" : "Archive", + "Content-Length" : "1024", + "x-ms-request-id" : "a9001046-501a-0046-7c34-38a6bc000000", + "Body" : "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]", + "Content-Type" : "application/octet-stream", + "x-ms-version" : "2019-07-07", + "x-ms-file-permission-key" : "15581347578553677299*8114634751575874941", + "Date" : "Mon, 01 Jun 2020 16:47:48 GMT", + "Accept-Ranges" : "bytes", + "x-ms-server-encrypted" : "true", + "x-ms-type" : "File", + "ETag" : "0x8D8064B83B7B059", + "x-ms-file-change-time" : "2020-06-01T16:47:43.8642857Z", + "x-ms-file-parent-id" : "0", + "x-ms-client-request-id" : "a06a575f-31ac-45b1-831f-0e524825d227", + "x-ms-file-last-write-time" : "2020-06-01T16:47:43.8642857Z" + }, + "Exception" : null + } ], + "variables" : [ "fileapitestsuploadrangefromurl116457cd32f224a01d", "fileapitestsuploadrangefromurl105161076a6f833381", "2020-06-01T16:47:43.618682700Z" ] +} \ No newline at end of file