, поэтому я пытаюсь клонировать объекты в папке на моей учетной записи S3 (Amazon S3).Но мне было интересно, есть ли способ сделать это без необходимости сначала записать файл в мою локальную систему, а затем загрузить этот файл обратно на S3?
, в конце концов я хочу, чтобы это было полностью рекурсивное клонирование папок и объектовв заданном ведре, но сейчас я застрял на том, чтобы заставить его эффективно клонировать.
говорят, что путь ведра - images.example.com/products/prodSku, и в этой папке prodSku у меня есть куча изображенийя хочу скопировать в новую папку
вот что у меня есть до сих пор.
(примечание: это написано на Groovy, но если вы знаете Java, это то же самое)
try{
def s3os = restService.listObjects(bucket_name, sourcePrefix, null)
def s3o
for(def i in s3os){
s3o = get(bucket_name, i.key)
// i want to be able to do something like this, just putting the input stream
// back into s3. but i can't. from what i know now, i have to write the
// dataInputStream into a file locally, then use that file to create a new S3Object
// which is placed as the second argument in the putObject method
restService.putObject(destinationBucketName, s3o.dataInputStream)
}
}catch(S3ServiceException e)
{
println e
}
Извините, что форматирование все испортилось, впервые отправив сообщение.
но любая помощь будет принята с благодарностью!
Спасибо!