У меня есть .bat-файл, который применит несколько быстрых преобразований ImageMagick в большой коллекции подкаталогов. Мне нужно, чтобы этот скрипт также выводил выходные файлы на AWS S3 с помощью утилиты S3Express (вариант Windows S3cmd).Вызов S3Express в пакетном режиме, команда pass, loop
echo off
set dest=destination-bucket/testfolder/
for /D %%d in (*) do (
cd %%d
md small
convert %1 -resize 350x350 -quality 80 -strip ./small/image.jpg
md medium
convert %1 -resize 640x640 -quality 80 -strip ./medium/image.jpg
md large
convert %1 -resize 1080x1080 -quality 30 -strip ./large/image.jpg
md xlarge
convert %1 -resize 1440x1440 -quality 30 -strip ./xlarge/image.jpg
cd..
"C:\Program Files\S3Express\S3Express.exe"
put %%d %dest% -s -cacl:public-read -cond:"name matches 'image.jpg'"
REM -s == recursive (replicates subfolder structure)
REM -cacl == canned access control list (ACL) :: Everyone gets READ access
REM -cond == filter :: only pushes "image.jpg" files.
)
Названный как «conv.bat», я бы использовал это как «conv image.jpg».
Проблема возникает с «put», которая является S3Express command.
Как я могу заставить свой скрипт подключить команду put в S3Express в конце каждого цикла? В текущем состоянии скрипт запускается через цикл один раз, останавливаясь после того, как он открывает «S3Express.exe».
Возможно, уместно отметить, что это мой первый пакетный скрипт, и мой первый раз с использованием S3Express.
Кстати, вы можете сделать «md small med large xlarge» одним выстрелом, а не стрелять 4 раза. Вы также можете сделать все ваши IM-преобразования одним выстрелом и сэкономить много времени, если у вас много изображений ... 'convert% 1 -strip \ (+ clone -resize 350x350 -quality 80 -write small/image.jpg \) \ (+ clone -resize 640x640 -quality 80 -write med/image.jpg \) ... -resize 1440x1440 -quality 30 large/image.jpg' –
@MarkSetchell Эй, спасибо за «md» однострочный , это действительно здорово. Что касается конденсации ImageMagick, то он более функциональный и/или быстрый, чтобы только запустить «конвертировать» один раз? На мой взгляд, это не так читаемо, но если есть выигрыш в производительности, я бы выбрал это. – SCK
Если у вас есть большое количество изображений, это может иметь значение. Если всего дюжина или два, пойдите с читаемой версией. –