Я создал AWS лямбда-функцию, которая берет некоторые файлы из корзины S3, архивирует их и передает заархивированный файл на сервер sftp. Когда я смотрю на сервер, я вижу, что папка tmp перенесена с файлами, и внутри zip-файла создается папка tmp. Когда я открываю zip-файл, появляется папка tmp, и внутри этой папки находятся файлы, которые я заархивировал. Я искал inte rnet и AWS, пытаясь выяснить, как изменить каталог в AWS Lambda, когда я извлекаю файлы для архивирования, но мне не повезло. Я не хочу, чтобы в моем zip-файле была папка tmp. Когда я распаковываю zip-файл, я просто хочу увидеть файлы, которые я выбрал для архивирования без каких-либо папок. Кто-нибудь знает как это сделать? Я программирую на Java.
Мой код указан ниже.
private DownloadFile(){
File localFile = new File(fileName);
//pull data and audit files from s3 bucket
s3Client.getObject(new GetObjectRequest("pie-dd-demo/daniel20", fileName), localFile);
zipOS = new ZipOutputStream(fos);
//send files to be zipped
writeToZipFile(fileName, zipOS);
}
public static void writeToZipFile(String path, ZipOutputStream zipStream)
throws FileNotFoundException, IOException {
File aFile = new File(path);
FileInputStream fis = new FileInputStream(aFile);
ZipEntry zipEntry = new ZipEntry(path);
try {
zipStream.putNextEntry(zipEntry);
byte[] bytes = new byte[1024];
int length;
while ((length = fis.read(bytes)) >= 0) {
zipStream.write(bytes, 0, length);
System.out.println(path + "write to zipfile complete");
}
} catch (FileNotFoundException exception) {
// Output expected FileNotFoundExceptions.
} catch (Exception exception) {
// Output unexpected Exceptions.
}
zipStream.closeEntry();
fis.close();
}