AWS TransferManager uploadFileList обрезает имя файла в S3 - программирование
Подтвердить что ты не робот

AWS TransferManager uploadFileList обрезает имя файла в S3

Я пытаюсь загрузить несколько файлов в S3 с помощью TranferManager. Ниже мой код:

@GetMapping("s3/batch/upload/base64")
public void uploadBase64ToWebp() {

     List<File> fileList = new ArrayList<>();
    String rawData = "1";
    String base64Data = Base64.encodeBase64String(rawData.getBytes(StandardCharsets.UTF_8));
     byte[] data = getBinaryImageData(base64Data);
     File file = new File("1234.webp");
     try {

         FileUtils.writeByteArrayToFile(file, data);

     } catch (IOException e) {

         System.out.println(e);
     }
     fileList.add(file);
     ObjectMetadataProvider metadataProvider = new ObjectMetadataProvider() {
            public void provideObjectMetadata(File file, ObjectMetadata metadata) {

                metadata.setContentType("image/webp");
                metadata.getUserMetadata().put("filename", file.getPath());
                metadata.getUserMetadata().put("createDateTime", new Date().toString());
            }
        };
        TransferManager transferManager = TransferManagerBuilder.standard().withS3Client(amazonS3).build();
     transferManager.uploadFileList(bucketName, "school/transactions", new File("."), fileList, metadataProvider);
}

private byte[] getBinaryImageData(String image) {

        return Base64.decodeBase64(
            image
                .replace("data:image/webp;base64,", "")
                .getBytes(StandardCharsets.UTF_8)
        );
    }

Здесь, как вы можете видеть, я даю имя файла как "1234.webp", но имя файла, которое сохраняется в S3, равно "34.webp". Я попробовал большее имя, например "1234567.webp", и снова первые две цифры усекаются, а имя файла - "34567.webp". Что я делаю неправильно?

Обратите внимание, что в примере, который я вставил здесь, я просто загружаю один файл, но в моем фактическом коде я загружаю несколько файлов, но в обоих случаях имена все равно усекаются.

4b9b3361

Ответ 1

Итак, это проблема Java IO. Я обновил ниже, чтобы показать путь, и он сработал.

Старый:

File file = new File("1234.webp");

Новое:

File file = new File("./1234.webp");

Все еще пытаюсь понять, почему первые две буквы упали.