Azure IoT 허브에서 장치 ID 대량 업로드를 수행하려면 https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-bulk-identity-mgmt을 따르고 있습니다. 여기에 주어진 모든 코드는 C#에 있으므로 JAVA와 동등한 것으로 변환됩니다.Azure IoT 허브 장치 ID를 대량으로 만드는 중 오류가 발생했습니다.
가져 오기 장치의 예를 사용 - 대량 디바이스 프로비저닝 I 함수 다음 BLOB에서 파일을 가져 오려면
json-{"id":"d3d78b0d-6c8c-4ef5-a321-91fbb6a4b7d1","importMode":"create","status":"enabled","authentication":{"symmetricKey":{"primaryKey":"f8/UZcYbhPxnNdbSl2J+0Q==","secondaryKey":"lbq4Y4Z8qWmfUxAQjRsDjw=="}}}
{"id":"70bbe407-8d65-4f57-936f-ef402aa66d07","importMode":"create","status":"enabled","authentication":{"symmetricKey":{"primaryKey":"9e7fDNIFbMu/NmOfxo/vGg==","secondaryKey":"nwFiKR4HV9KYHzkeyu8nLA=="}}}
다음 무엇입니까 것은 위의 코드에서
called-CompletableFuture<JobProperties> importJob = registryManager
.importDevicesAsync(inURI, outURI);
입니다, SAS 코드가있는 URI를 제공해야합니다. 컨테이너 SAS URI를 가져 오십시오. 등가 코드는
입니다.3210static String GetContainerSasUri(CloudBlobContainer container) {
SharedAccessBlobPolicy sasConstraints = new SharedAccessBlobPolicy();
sasConstraints.setSharedAccessExpiryTime(new Date(new Date().getTime() + TimeUnit.DAYS.toMillis(1)));
sasConstraints.setPermissions(EnumSet.of(SharedAccessBlobPermissions.READ, SharedAccessBlobPermissions.WRITE,
SharedAccessBlobPermissions.LIST, SharedAccessBlobPermissions.DELETE));
BlobContainerPermissions permissions = new BlobContainerPermissions();
permissions.setPublicAccess(BlobContainerPublicAccessType.CONTAINER);
permissions.getSharedAccessPolicies().put("testpolicy", sasConstraints);
try {
container.uploadPermissions(permissions);
} catch (StorageException e1) {
e1.printStackTrace();
}
String sasContainerToken = null;
try {
sasContainerToken = container.generateSharedAccessSignature(sasConstraints, "testpolicy");
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (StorageException e) {
e.printStackTrace();
}
System.out.println("URI " + container.getUri() +"?"+ sasContainerToken);
return container.getUri() + "?" + sasContainerToken;
}
이제 문제가 발생합니다. 출력 컨테이너의 나는 무엇입니까 다음과 같은 오류 -
java.util.concurrent.ExecutionException: com.microsoft.azure.sdk.iot.service.exceptions.IotHubBadFormatException: Bad message format! ErrorCode:BlobContainerValidationError;Unauthorized to write to output blob container. Tracking ID:2dcb2efbf1e14e33ba60dc8415dc03c3-G:4-TimeStamp:11/08/2017 16:16:10
내가 잘못된 메시지 형식 오류가 발생하고 이유를 알고 도와주세요? SAS 키 생성 코드에 문제가 있습니까, 아니면 BLOB 컨테이너에 쓰기 권한이 없습니까?