Packages
ex_aws
0.4.2
2.7.0
2.6.1
2.6.0
2.5.11
2.5.10
2.5.9
2.5.8
2.5.7
2.5.6
2.5.5
2.5.4
2.5.3
2.5.2
2.5.1
2.5.0
2.4.4
2.4.3
2.4.2
2.4.1
2.4.0
2.3.4
2.3.3
2.3.2
2.3.1
2.3.0
2.2.10
2.2.9
2.2.8
2.2.7
2.2.6
2.2.5
2.2.4
2.2.3
2.2.2
2.2.1
2.2.0
2.1.9
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.0
1.0.0-rc.4
1.0.0-rc.3
1.0.0-rc.1
1.0.0-beta3
1.0.0-beta2
1.0.0-beta1
1.0.0-beta0
0.5.0
0.4.19
0.4.18
0.4.17
0.4.15
0.4.14
0.4.13
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
0.0.5
0.0.4
0.0.3
AWS client for Elixir. Currently supports Dynamo, DynamoStreams, EC2, Firehose, Kinesis, KMS, Lambda, RRDS, Route53, S3, SES, SNS, SQS, STS and others.
Current section
Files
Jump to
Current section
Files
lib/ex_aws/s3/parsers.ex
defmodule ExAws.S3.Parsers do
def parse_list_objects({:ok, resp = %{body: xml}}) do
parsed_body = xml
|> SweetXml.xpath(SweetXml.sigil_x("//ListBucketResult", []),
name: SweetXml.sigil_x("./Name/text()", []),
is_truncated: SweetXml.sigil_x("./IsTruncated/text()", []),
prefix: SweetXml.sigil_x("./Prefix/text()", []),
marker: SweetXml.sigil_x("./Marker/text()", []),
max_keys: SweetXml.sigil_x("./MaxKeys/text()", []),
next_marker: SweetXml.sigil_x("./NextMarker/text()", []),
contents: [
SweetXml.sigil_x("./Contents", 'l'),
key: SweetXml.sigil_x("./Key/text()", []),
last_modified: SweetXml.sigil_x("./LastModified/text()", []),
e_tag: SweetXml.sigil_x("./ETag/text()", []),
size: SweetXml.sigil_x("./Size/text()", []),
storage_class: SweetXml.sigil_x("./StorageClass/text()", []),
owner: [
SweetXml.sigil_x("./Owner", []),
id: SweetXml.sigil_x("./ID/text()", []),
display_name: SweetXml.sigil_x("./DisplayName/text()", [])
]
]
)
|> list_objects_binaries
{:ok, %{resp | body: parsed_body}}
end
def parse_list_objects(val), do: val
defp list_objects_binaries(result) do
Enum.into(result, %{}, fn
{:contents, contents} -> {:contents, Enum.map(contents, &list_objects_binaries/1)}
{:owner, v} -> {:owner, list_objects_binaries(v)}
{k, nil} -> {k, nil}
{k, v} -> {k, IO.chardata_to_string(v)}
end)
end
end