/** * Converts the specified list of PartETags to an XML fragment that can be sent to the * CompleteMultipartUpload operation of Amazon S3. * * @param partETags The list of part ETags containing the data to include in the new XML fragment. * @return A byte array containing the data */ public static byte[] convertToXmlByteArray(List<PartETag> partETags) { XmlWriter xml = new XmlWriter(); xml.start("CompleteMultipartUpload"); if (partETags != null) { List<PartETag> sortedPartETags = new ArrayList<PartETag>(partETags); Collections.sort( sortedPartETags, new Comparator<PartETag>() { public int compare(PartETag tag1, PartETag tag2) { if (tag1.getPartNumber() < tag2.getPartNumber()) return -1; if (tag1.getPartNumber() > tag2.getPartNumber()) return 1; return 0; } }); for (PartETag partEtag : sortedPartETags) { xml.start("Part"); xml.start("PartNumber").value(Integer.toString(partEtag.getPartNumber())).end(); xml.start("ETag").value(partEtag.getETag()).end(); xml.end(); } } xml.end(); return xml.getBytes(); }
/** * Converts the RestoreObjectRequest to an XML fragment that can be sent to the RestoreObject * operation of Amazon S3. * * @param restoreObjectRequest The container which provides options for restoring an object, which * was transitioned to the Glacier from S3 when it was expired, into S3 again. * @return A byte array containing the data * @throws AmazonClientException */ public static byte[] convertToXmlByteArray(RestoreObjectRequest restoreObjectRequest) throws AmazonClientException { XmlWriter xml = new XmlWriter(); xml.start("RestoreRequest"); xml.start("Days").value(Integer.toString(restoreObjectRequest.getExpirationInDays())).end(); xml.end(); return xml.getBytes(); }