fix: complete url xml
This commit is contained in:
parent
c2bbca3bc7
commit
2a4a551d52
2 changed files with 29 additions and 9 deletions
|
@ -11,6 +11,13 @@ import "package:photos/utils/xml_parser_util.dart";
|
|||
final _enteDio = NetworkClient.instance.enteDio;
|
||||
final _dio = NetworkClient.instance.getDio();
|
||||
|
||||
class PartETag {
|
||||
final int partNumber;
|
||||
final String eTag;
|
||||
|
||||
PartETag(this.partNumber, this.eTag);
|
||||
}
|
||||
|
||||
class MultipartUploadURLs {
|
||||
final String objectKey;
|
||||
final List<String> partsURLs;
|
||||
|
@ -59,8 +66,6 @@ Future<void> putMultipartFile(
|
|||
// upload individual parts and get their etags
|
||||
final etags = await uploadParts(urls.partsURLs, encryptedFile);
|
||||
|
||||
print(etags);
|
||||
|
||||
// complete the multipart upload
|
||||
await completeMultipartUpload(etags, urls.completeURL);
|
||||
}
|
||||
|
@ -109,11 +114,16 @@ Future<void> completeMultipartUpload(
|
|||
String completeURL,
|
||||
) async {
|
||||
final body = convertJs2Xml({
|
||||
'CompleteMultipartUpload': partEtags.entries.toList(),
|
||||
'CompleteMultipartUpload': partEtags.entries
|
||||
.map(
|
||||
(e) => PartETag(
|
||||
e.key + 1,
|
||||
e.value,
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
});
|
||||
|
||||
print(body);
|
||||
|
||||
try {
|
||||
await _dio.post(
|
||||
completeURL,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// ignore_for_file: implementation_imports
|
||||
|
||||
import "package:photos/utils/multipart_upload_util.dart";
|
||||
import "package:xml/src/xml/entities/named_entities.dart";
|
||||
import "package:xml/xml.dart";
|
||||
|
||||
|
@ -23,17 +24,26 @@ void buildXml(XmlBuilder builder, dynamic node) {
|
|||
for (var item in node) {
|
||||
buildXml(builder, item);
|
||||
}
|
||||
} else {
|
||||
} else if (node is PartETag) {
|
||||
builder.element(
|
||||
"Part",
|
||||
nest: () {
|
||||
builder.attribute(
|
||||
builder.element(
|
||||
"PartNumber",
|
||||
(node as MapEntry<int, String>).key + 1,
|
||||
nest: () {
|
||||
buildXml(builder, node.partNumber);
|
||||
},
|
||||
);
|
||||
builder.element(
|
||||
"ETag",
|
||||
nest: () {
|
||||
buildXml(builder, node.eTag);
|
||||
},
|
||||
);
|
||||
builder.attribute("ETag", node.value);
|
||||
},
|
||||
);
|
||||
} else {
|
||||
builder.text(node.toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue