json файлы, загруженные aws s3 syn c / aws s3 cp, являются неполными - PullRequest
0 голосов
/ 28 мая 2020

Я скачал. json файл с amazon s3, но его содержимое - это просто значение первой пары ключ / значение.

исходный json файл выглядит следующим образом:

{
    "_1": [
        {
            "Name": "name",
            "Type": "type"
        }
    ]
}

но загруженный json файл даже не json файл, внутри него только список.

[
  {
    "Name": "name",
    "Type": "type"
  }
]

Я пробовал aws s3 syn c / aws s3 copy / aws s3api get-object и все его результаты одинаковы.

Я хочу загрузить только исходный файл из корзины s3.

есть ли какое-нибудь решение?

  • Обновления

Я просто скопировал исходный контент на s3 select из предварительного просмотра и сохранил его как файл.

Я обнаружил, что его контрольная сумма md5 и размер файла полностью отличаются от обзор объекта.

Похоже, исходный файл в корзине s3 поврежден, но я не уверен, насколько его предварительный просмотр по-прежнему совпадает с исходным содержимым.

1 Ответ

0 голосов
/ 29 мая 2020

Я обнаружил, что aws s3api select-object-content может дать тот же результат, что и выбор S3 из предварительного просмотра, но без отступов.

Для отступов я решил изменить отступ после получения неповрежденных результатов.

Я использовал команду ниже, чтобы получить мои json файлы.

aws s3api select-object-content \
  --bucket $BUCKET \
  --key $KEY --expression "select * from s3object" \
  --expression-type 'SQL' \
  --input-serialization '{"JSON": {"Type": "LINES"}, "CompressionType": "NONE"}' \
  --output-serialization '{"JSON": {}}' \
  /dev/stdout | python -mjson.tool > $KEY
...