Переменная swift list -p не устанавливается

Я использую быстрый интерфейс командной строки и пытаюсь загрузить несколько объектов из контейнера.

Я могу сделать это как таковой

for i in `swift list container -p object/201505`; do swift download container $i; done

проблема в том, что у меня есть несколько объектов, которые мне нужно найти и загрузить все, что соответствует. Я попытался сделать это в небольшом скрипте.

#!/bin/bash

while read objects;
SAMPLE=$(swift list container objects);
do
for i in $SAMPLE; do `swift download container $i`; done
done < samples_list

Но меня всегда встречают следующим.

Usage: swift [options] list [options] [container]
    Lists the containers for the account or the objects for a container. -p or
    --prefix is an option that will only list items beginning with that prefix.
    -d or --delimiter is option (for container listings only) that will roll up
    items with the given delimiter (see Cloud Files general documentation for
    what this means).

Мои переменные не читаются? Как я могу загружать только те файлы, которые имеют правильный префикс, который я установил?


person Ahmed Ramanesh    schedule 10.08.2016    source источник


Ответы (1)


Я действительно не знаю swift, но я думаю, вы хотите

#!/bin/bash

while read objects; do
  swift list container "$objects" | while read i; do
    swift download container "$i"
  done
done < samples_list

Я предполагаю, что swift list записывает один элемент в строку в своем выводе.

person chepner    schedule 10.08.2016
comment
Уважаемый сэр, спасибо за быстрый ответ. Я отредактировал скрипт, чтобы отразить ваши изменения, и он дает ту же ошибку. Я сделаю все необходимое и больше изучу вопрос о быстром открытии стека. - person Ahmed Ramanesh; 10.08.2016