Merge pull request #9961 from thingsboard/fix/images-public-key
Fix public resource key regeneration on image update
This commit is contained in:
commit
6fce86c439
@ -130,13 +130,14 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
checkPngImageDescriptor(imageInfo.getDescriptor(ImageDescriptor.class));
|
checkPngImageDescriptor(imageInfo.getDescriptor(ImageDescriptor.class));
|
||||||
|
|
||||||
String newFilename = "my_jpeg_image.png";
|
String newFilename = "my_jpeg_image.png";
|
||||||
imageInfo = uploadImage(HttpMethod.PUT, "/api/images/tenant/" + filename, newFilename, "image/jpeg", JPEG_IMAGE);
|
TbResourceInfo newImageInfo = uploadImage(HttpMethod.PUT, "/api/images/tenant/" + filename, newFilename, "image/jpeg", JPEG_IMAGE);
|
||||||
|
|
||||||
assertThat(imageInfo.getTitle()).isEqualTo(filename);
|
assertThat(newImageInfo.getTitle()).isEqualTo(filename);
|
||||||
assertThat(imageInfo.getResourceKey()).isEqualTo(filename);
|
assertThat(newImageInfo.getResourceKey()).isEqualTo(filename);
|
||||||
assertThat(imageInfo.getFileName()).isEqualTo(newFilename);
|
assertThat(newImageInfo.getFileName()).isEqualTo(newFilename);
|
||||||
|
assertThat(newImageInfo.getPublicResourceKey()).isEqualTo(imageInfo.getPublicResourceKey());
|
||||||
|
|
||||||
ImageDescriptor imageDescriptor = imageInfo.getDescriptor(ImageDescriptor.class);
|
ImageDescriptor imageDescriptor = newImageInfo.getDescriptor(ImageDescriptor.class);
|
||||||
checkJpegImageDescriptor(imageDescriptor);
|
checkJpegImageDescriptor(imageDescriptor);
|
||||||
|
|
||||||
assertThat(downloadImage("tenant", filename)).containsExactly(JPEG_IMAGE);
|
assertThat(downloadImage("tenant", filename)).containsExactly(JPEG_IMAGE);
|
||||||
@ -154,12 +155,15 @@ public class ImageControllerTest extends AbstractControllerTest {
|
|||||||
assertThat(imageInfo.getFileName()).isEqualTo(filename);
|
assertThat(imageInfo.getFileName()).isEqualTo(filename);
|
||||||
|
|
||||||
String newTitle = "My PNG image";
|
String newTitle = "My PNG image";
|
||||||
imageInfo.setTitle(newTitle);
|
TbResourceInfo newImageInfo = new TbResourceInfo(imageInfo);
|
||||||
imageInfo.setDescriptor(JacksonUtil.newObjectNode());
|
newImageInfo.setTitle(newTitle);
|
||||||
imageInfo = doPut("/api/images/tenant/" + filename + "/info", imageInfo, TbResourceInfo.class);
|
newImageInfo.setDescriptor(JacksonUtil.newObjectNode());
|
||||||
|
newImageInfo = doPut("/api/images/tenant/" + filename + "/info", newImageInfo, TbResourceInfo.class);
|
||||||
|
|
||||||
assertThat(imageInfo.getTitle()).isEqualTo(newTitle);
|
assertThat(newImageInfo.getTitle()).isEqualTo(newTitle);
|
||||||
assertThat(imageInfo.getDescriptor(ImageDescriptor.class)).isEqualTo(imageDescriptor);
|
assertThat(newImageInfo.getDescriptor(ImageDescriptor.class)).isEqualTo(imageDescriptor);
|
||||||
|
assertThat(newImageInfo.getResourceKey()).isEqualTo(imageInfo.getResourceKey());
|
||||||
|
assertThat(newImageInfo.getPublicResourceKey()).isEqualTo(newImageInfo.getPublicResourceKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@ -38,8 +38,6 @@
|
|||||||
<!-- Device actor message processor debug for the test scope -->
|
<!-- Device actor message processor debug for the test scope -->
|
||||||
<!-- <logger name="org.thingsboard.server.actors.device.DeviceActorMessageProcessor" level="DEBUG" />-->
|
<!-- <logger name="org.thingsboard.server.actors.device.DeviceActorMessageProcessor" level="DEBUG" />-->
|
||||||
|
|
||||||
<logger name="org.thingsboard.server.service.subscription" level="TRACE"/>
|
|
||||||
|
|
||||||
<root level="WARN">
|
<root level="WARN">
|
||||||
<appender-ref ref="console"/>
|
<appender-ref ref="console"/>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@ -150,12 +150,9 @@ public class BaseImageService extends BaseResourceService implements ImageServic
|
|||||||
image.setDescriptorValue(descriptor);
|
image.setDescriptorValue(descriptor);
|
||||||
image.setPreview(result.getRight());
|
image.setPreview(result.getRight());
|
||||||
|
|
||||||
if (StringUtils.isEmpty(image.getPublicResourceKey())) {
|
if (StringUtils.isEmpty(image.getPublicResourceKey()) || (image.getId() == null &&
|
||||||
|
resourceInfoDao.existsByPublicResourceKey(ResourceType.IMAGE, image.getPublicResourceKey()))) {
|
||||||
image.setPublicResourceKey(generatePublicResourceKey());
|
image.setPublicResourceKey(generatePublicResourceKey());
|
||||||
} else {
|
|
||||||
if (resourceInfoDao.existsByPublicResourceKey(ResourceType.IMAGE, image.getPublicResourceKey())) {
|
|
||||||
image.setPublicResourceKey(generatePublicResourceKey());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
log.debug("[{}] Creating image {} ('{}')", image.getTenantId(), image.getResourceKey(), image.getName());
|
log.debug("[{}] Creating image {} ('{}')", image.getTenantId(), image.getResourceKey(), image.getName());
|
||||||
return new TbResourceInfo(doSaveResource(image));
|
return new TbResourceInfo(doSaveResource(image));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user