Java 使用路径上载到OpenStack多部分

Java 使用路径上载到OpenStack多部分,java,openstack-swift,jclouds,Java,Openstack Swift,Jclouds,我使用java Jclouds上传到OpenStack Swift中的一个容器中,在根目录上的上传进行得很好,但是当我传递一个路径(包含文件夹,然后是文件)时,该文件被上传,但也创建了另一个与该文件同名的文件夹。原始文件名为8mb.bin 代码是: try { ByteSource fileBytes = Files.asByteSource(file); File file = new File(filePath); String name = "test/test2/

我使用java Jclouds上传到OpenStack Swift中的一个容器中,在根目录上的上传进行得很好,但是当我传递一个路径(包含文件夹,然后是文件)时,该文件被上传,但也创建了另一个与该文件同名的文件夹。原始文件名为8mb.bin

代码是:

try {
    ByteSource fileBytes = Files.asByteSource(file);
    File file = new File(filePath);
    String name = "test/test2/" + file.getName();
    Blob blob = blobStore.blobBuilder(name)
        .userMetadata(ImmutableMap.of("ContentType", contentType, "test", String.valueOf(test)))
        .payload(fileBytes)
        .contentLength(file.length())
        .contentType(contentType)
        .build();

    ///sednig the request
    blobStore.putBlob(ContainerName, blob, multipart());
    return contentLength;    
}
在指定的路径中,它是这样的:

文件夹
8mb.bin
中有路径
/slo/1522766773.076000/8200000/33554432
,然后是一个名为00000000的文件,其大小与原始文件大小相同

如何解决这个问题


感谢

jclouds使用实现了Swift多部分。这有一个限制,即部分与清单存在于同一命名空间中,修改或删除这些部分会使清单无效。建议将部件放在另一个容器中以清理对象列表,尽管这需要一些额外的逻辑来进行删除和覆盖。

jclouds使用实现Swift多部件。这有一个限制,即部分与清单存在于同一命名空间中,修改或删除这些部分会使清单无效。建议将部件放在另一个容器中以清理对象列表,尽管这需要一些额外的逻辑来进行删除和覆盖