This is an automated email from the ASF dual-hosted git repository.
spricoder pushed a commit to branch object_type
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/object_type by this push:
new cb9ea5056b6 Add VirtualFilePath and Path Generation
cb9ea5056b6 is described below
commit cb9ea5056b63e76968e670fdc1b45c4afa0d7c28
Author: spricoder <[email protected]>
AuthorDate: Thu Jul 10 22:10:04 2025 +0800
Add VirtualFilePath and Path Generation
---
iotdb-client/service-rpc/pom.xml | 5 -----
.../rpc/model/CompressedTiffModelProcessor.java | 25 ++++++++++++++++------
2 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/iotdb-client/service-rpc/pom.xml b/iotdb-client/service-rpc/pom.xml
index 17c52de5d91..a675709da36 100644
--- a/iotdb-client/service-rpc/pom.xml
+++ b/iotdb-client/service-rpc/pom.xml
@@ -94,11 +94,6 @@
<artifactId>gdal</artifactId>
<version>3.11.0</version>
</dependency>
- <dependency>
- <groupId>org.gdal</groupId>
- <artifactId>vsi</artifactId>
- <version>1.0</version>
- </dependency>
</dependencies>
<build>
<plugins>
diff --git
a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/model/CompressedTiffModelProcessor.java
b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/model/CompressedTiffModelProcessor.java
index 2d67871e34c..ed5a44a87f9 100644
---
a/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/model/CompressedTiffModelProcessor.java
+++
b/iotdb-client/service-rpc/src/main/java/org/apache/iotdb/rpc/model/CompressedTiffModelProcessor.java
@@ -19,7 +19,6 @@
package org.apache.iotdb.rpc.model;
-import org.gdal.VsiGdalNative;
import org.gdal.gdal.Band;
import org.gdal.gdal.Dataset;
import org.gdal.gdal.Driver;
@@ -28,6 +27,8 @@ import org.gdal.gdalconst.gdalconstConstants;
public class CompressedTiffModelProcessor extends ModelProcessor {
private static final Driver DRIVER;
+ private static final String VIRTUAL_FILE_PATH_PREFIX = "/vsimem";
+ private static final String VIRTUAL_FILE_PATH_SUFFIX = ".tif";
// Specifying compression options
private static String compressOption = "COMPRESS=LZW";
// Specifying block x size options
@@ -46,7 +47,11 @@ public class CompressedTiffModelProcessor extends
ModelProcessor {
@Override
public byte[] write(float[] values, int width, int height) {
String virtualFilePath = getVirtualFilePath();
- return write(virtualFilePath, values, width, height);
+ try {
+ return write(virtualFilePath, values, width, height);
+ } finally {
+ gdal.Unlink(virtualFilePath);
+ }
}
private byte[] write(String filePath, float[] values, int width, int height)
{
@@ -71,7 +76,7 @@ public class CompressedTiffModelProcessor extends
ModelProcessor {
}
band.FlushCache();
dataset.FlushCache();
- return VsiGdalNative.vsiGetMemFileBuffer(filePath, true);
+ return gdal.GetMemFileBuffer(filePath);
} finally {
if (dataset != null) {
dataset.delete();
@@ -81,10 +86,13 @@ public class CompressedTiffModelProcessor extends
ModelProcessor {
@Override
public float[] readAll(byte[] fileBytes) {
- // TODO @spricoder
String virtualFilePath = getVirtualFilePath();
- VsiGdalNative.writeVsiMemFile(virtualFilePath, fileBytes);
- return readAll(virtualFilePath);
+ try {
+ gdal.FileFromMemBuffer(virtualFilePath, fileBytes);
+ return readAll(virtualFilePath);
+ } finally {
+ gdal.Unlink(virtualFilePath);
+ }
}
@Override
@@ -110,6 +118,9 @@ public class CompressedTiffModelProcessor extends
ModelProcessor {
}
private String getVirtualFilePath() {
- return "";
+ long tid = Thread.currentThread().getId();
+ long timestamp = System.currentTimeMillis();
+ return String.format(
+ "%s/%d_%d%s", VIRTUAL_FILE_PATH_PREFIX, tid, timestamp,
VIRTUAL_FILE_PATH_SUFFIX);
}
}