/** * A convenience method to download multiple objects from S3 to pre-existing output streams, which * is particularly useful for downloading objects to files. * * @param bucket * the bucket containing the objects * @param downloadPackages * an array of download package objects that manage the output of data for an S3Object. * * @throws S3ServiceException */ public void downloadObjects(final S3Bucket bucket, final DownloadPackage[] downloadPackages) throws S3ServiceException { S3ServiceEventAdaptor adaptor = new S3ServiceEventAdaptor(); (new S3ServiceMulti(s3Service, adaptor)).downloadObjects(bucket, downloadPackages); throwError(adaptor); }
/** * Creates multiple buckets. * * @param buckets * the buckets to create. * @return * the created buckets. * @throws S3ServiceException */ public S3Bucket[] createBuckets(final S3Bucket[] buckets) throws S3ServiceException { final List bucketList = new ArrayList(); S3ServiceEventAdaptor adaptor = new S3ServiceEventAdaptor() { @Override public void s3ServiceEventPerformed(CreateBucketsEvent event) { super.s3ServiceEventPerformed(event); if (ServiceEvent.EVENT_IN_PROGRESS == event.getEventCode()) { bucketList.addAll(Arrays.asList(event.getCreatedBuckets())); } }; }; (new S3ServiceMulti(s3Service, adaptor)).createBuckets(buckets); throwError(adaptor); return (S3Bucket[]) bucketList.toArray(new S3Bucket[bucketList.size()]); }
/** * Deletes multiple objects * * @param bucket * the bucket containing the objects to delete. * @param objects * the objects to delete. * @throws S3ServiceException */ public void deleteObjects(final S3Bucket bucket, final S3Object[] objects) throws S3ServiceException { final List objectList = new ArrayList(); S3ServiceEventAdaptor adaptor = new S3ServiceEventAdaptor() { @Override public void s3ServiceEventPerformed(DeleteObjectsEvent event) { super.s3ServiceEventPerformed(event); if (ServiceEvent.EVENT_IN_PROGRESS == event.getEventCode()) { objectList.addAll(Arrays.asList(event.getDeletedObjects())); } }; }; (new S3ServiceMulti(s3Service, adaptor)).deleteObjects(bucket, objects); throwError(adaptor); }
@Override public void fireErrorEvent(Throwable throwable) { success[0] = false; fireServiceEvent(ListObjectsEvent.newErrorEvent(throwable, uniqueOperationId)); } @Override
public void run() { if (retainAcls) { // Retain ACL settings from original objects. if (!s3ServiceMulti.getObjectACLs( currentSelectedBucket, sourceObjects)) { return; } for (int i = 0; i < sourceObjects.length; i++) { destinationObjects[i].setAcl( sourceObjects[i].getAcl()); } } // Copy objects. Metadata is retained, not replaced. s3ServiceMulti.copyObjects(currentBucketName, destinationBucketName, sourceObjectKeys, destinationObjects, false); if (isDeleteAfterCopy) { final S3Object[] sourceObjects = new S3Object[sourceObjectKeys.length]; for (int i = 0; i < sourceObjectKeys.length; i++) { sourceObjects[i] = new S3Object(sourceObjectKeys[i]); } s3ServiceMulti.deleteObjects(currentSelectedBucket, sourceObjects); } if (destinationBucketName.equals(currentBucketName) || isDeleteAfterCopy) { // Refesh object listing for current bucket if the bucket's contents // have changed. listObjects(); } } });
if (!s3ServiceMulti.getObjectACLs(selectedBucket, sourceObjects)) { return; ok = s3ServiceMulti.copyObjects( selectedBucket.getName(), selectedBucket.getName(), sourceObjectKeys, destinationObjects, true); s3ServiceMulti.getObjectsHeads( selectedBucket, destinationObjects);
/** * Creates/uploads multiple objects. * * @param bucket * the bucket to create the objects in. * @param objects * the objects to create/upload. * @return * the created/uploaded objects. * @throws S3ServiceException */ public S3Object[] putObjects(final S3Bucket bucket, final S3Object[] objects) throws S3ServiceException { final List objectList = new ArrayList(); S3ServiceEventAdaptor adaptor = new S3ServiceEventAdaptor() { @Override public void s3ServiceEventPerformed(CreateObjectsEvent event) { super.s3ServiceEventPerformed(event); if (ServiceEvent.EVENT_IN_PROGRESS == event.getEventCode()) { objectList.addAll(Arrays.asList(event.getCreatedObjects())); } }; }; (new S3ServiceMulti(s3Service, adaptor)).putObjects(bucket, objects); throwError(adaptor); return (S3Object[]) objectList.toArray(new S3Object[objectList.size()]); }
/** * Updates/sets Access Control List (ACL) settings for multiple objects. * * @param bucket * the bucket containing the objects. * @param objects * objects containing ACL settings that will be updated/set. * @return * objects whose ACL settings were updated/set. * @throws S3ServiceException */ public S3Object[] putACLs(final S3Bucket bucket, final S3Object[] objects) throws S3ServiceException { final List objectList = new ArrayList(); S3ServiceEventAdaptor adaptor = new S3ServiceEventAdaptor() { @Override public void s3ServiceEventPerformed(UpdateACLEvent event) { super.s3ServiceEventPerformed(event); if (ServiceEvent.EVENT_IN_PROGRESS == event.getEventCode()) { objectList.addAll(Arrays.asList(event.getObjectsWithUpdatedACL())); } }; }; (new S3ServiceMulti(s3Service, adaptor)).putACLs(bucket, objects); throwError(adaptor); return (S3Object[]) objectList.toArray(new S3Object[objectList.size()]); }
/** * Retrieves Access Control List (ACL) settings for multiple objects. * * @param bucket * the bucket containing the objects. * @param objects * the objects whose ACLs will be retrieved. * @return * objects including the ACL information retrieved. * @throws S3ServiceException */ public S3Object[] getObjectACLs(final S3Bucket bucket, final S3Object[] objects) throws S3ServiceException { final List objectList = new ArrayList(); S3ServiceEventAdaptor adaptor = new S3ServiceEventAdaptor() { @Override public void s3ServiceEventPerformed(LookupACLEvent event) { super.s3ServiceEventPerformed(event); if (ServiceEvent.EVENT_IN_PROGRESS == event.getEventCode()) { objectList.addAll(Arrays.asList(event.getObjectsWithACL())); } }; }; (new S3ServiceMulti(s3Service, adaptor)).getObjectACLs(bucket, objects); throwError(adaptor); return (S3Object[]) objectList.toArray(new S3Object[objectList.size()]); }
/** * Retrieves details of multiple objects (details only, no data) * * @param bucket * the bucket containing the objects. * @param objectKeys * the key names of the objects to retrieve. * @return * objects populated with the details retrieved. * @throws S3ServiceException */ public S3Object[] getObjectsHeads(final S3Bucket bucket, final String[] objectKeys) throws S3ServiceException { final List objectList = new ArrayList(); S3ServiceEventAdaptor adaptor = new S3ServiceEventAdaptor() { @Override public void s3ServiceEventPerformed(GetObjectHeadsEvent event) { super.s3ServiceEventPerformed(event); if (ServiceEvent.EVENT_IN_PROGRESS == event.getEventCode()) { objectList.addAll(Arrays.asList(event.getCompletedObjects())); } }; }; (new S3ServiceMulti(s3Service, adaptor)).getObjectsHeads(bucket, objectKeys); throwError(adaptor); return (S3Object[]) objectList.toArray(new S3Object[objectList.size()]); }
/** * Deletes multiple versions. * * @param versionIds * the identifiers of the object versions that will be deleted. * @param multiFactorSerialNumber * the serial number for a multi-factor authentication device. * @param multiFactorAuthCode * a multi-factor authentication code generated by a device. * @param bucketName * the name of the versioned bucket containing the object to be deleted. * @param objectKey * the key representing the object in S3. * * @throws S3ServiceException */ public void deleteVersionsOfObjectWithMFA(final String[] versionIds, String multiFactorSerialNumber, String multiFactorAuthCode, String bucketName, String objectKey) throws S3ServiceException { S3ServiceEventAdaptor adaptor = new S3ServiceEventAdaptor(); (new S3ServiceMulti(s3Service, adaptor)).deleteVersionsOfObjectWithMFA( versionIds, multiFactorSerialNumber, multiFactorAuthCode, bucketName, objectKey); throwError(adaptor); }
public void run() { final S3Object[] selectedObjects = getSelectedObjects(); boolean aclLookupSucceeded = s3ServiceMulti.getObjectACLs( selectedBucket, selectedObjects); s3ServiceMulti.putACLs(selectedBucket, selectedObjects);
(new S3ServiceMulti(s3Service, adaptor)).copyObjects(sourceBucketName, destinationBucketName, sourceObjectKeys, destinationObjects, replaceMetadata); throwError(adaptor);
log.debug("Logging out"); try { ProviderCredentials credentials = s3ServiceMulti.getAWSCredentials(); String loginName = (credentials.hasFriendlyName() ? credentials.getFriendlyName() s3ServiceMulti = new S3ServiceMulti( getRestS3Service(null), this); cloudFrontService = null;
try { cloudFrontService = new CloudFrontService( s3ServiceMulti.getAWSCredentials(), APPLICATION_DESCRIPTION, myself, null); cloudFrontService.listDistributions(); } catch (CloudFrontServiceException e) { startProgressDialog("Listing buckets for " + s3ServiceMulti.getAWSCredentials().getAccessKey()); try { final S3Bucket[] buckets = s3ServiceMulti.getS3Service().listAllBuckets();
public void run() { s3ServiceMulti.deleteObjects(currentSelectedBucket, objects); runInDispatcherThreadImmediately(new Runnable() { public void run() { updateObjectsSummary(false); S3Object[] allObjects = objectTableModel.getObjects(); cachedBuckets.put(currentSelectedBucket.getName(), allObjects); } }); } });
public void run() { // Retrieve details of objects for download if (!retrieveObjectsDetails(getSelectedObjects())) { return; } try { final FileComparerResults comparisonResults = compareRemoteAndLocalFiles( objectKeyToFilepathMap, s3DownloadObjectsMap); DownloadPackage[] downloadPackages = buildDownloadPackageList(comparisonResults, s3DownloadObjectsMap); if (downloadPackages == null) { return; } s3ServiceMulti.downloadObjects(currentSelectedBucket, downloadPackages); } catch (final Exception e) { runInDispatcherThreadImmediately(new Runnable() { public void run() { String message = "Unable to download objects"; log.error(message, e); ErrorDialog.showDialog(ownerFrame, hyperlinkListener, message, e); } }); } } });
final S3ServiceMulti s3Multi = new S3ServiceMulti(restService, new S3ServiceEventAdaptor() { @Override public void s3ServiceEventPerformed(ListObjectsEvent event) {
/** * Actions performed when an object is selected in the objects list table. */ private void objectSelectedAction() { int count = getSelectedObjects().length; updateObjectACLMenuItem.setEnabled(count > 0); downloadObjectMenuItem.setEnabled(count > 0); deleteObjectMenuItem.setEnabled(count > 0); viewOrModifyObjectAttributesMenuItem.setEnabled(count > 0); copyObjectsMenuItem.setEnabled(count > 0); generatePublicGetUrls.setEnabled(count >= 1 && s3ServiceMulti.getAWSCredentials() != null); generateTorrentUrl.setEnabled(count == 1); }
public void run() { if (s3ServiceMulti.createBuckets(new S3Bucket[] { newBucket })) { int modelIndex = bucketTableModel.getBucketIndexByName(newBucket.getName()); int viewIndex = bucketTableModelSorter.viewIndex(modelIndex); bucketsTable.setRowSelectionInterval(viewIndex, viewIndex); } } });