public SwiftDeleteFeature(final SwiftSession session, final SwiftRegionService regionService) { this(session, new SwiftSegmentService(session, regionService), regionService); }
public Path getSegment(final Path file, final Long size, int segmentNumber) { return new Path(this.getSegmentsDirectory(file, size), String.format("%08d", segmentNumber), EnumSet.of(Path.Type.file)); }
if(status.isAppend()) { existingSegments.addAll(listService.list(segmentService.getSegmentsDirectory(file, status.getOffset() + status.getLength()), new DisabledListProgressListener()).toList()); final Long length = Math.min(segmentSize, remaining); final Path segment = segmentService.getSegment(file, status.getOffset() + status.getLength(), segmentNumber); if(existingSegments.contains(segment)) { final Path existingSegment = existingSegments.get(existingSegments.indexOf(segment)); final String manifest = segmentService.manifest(containerService.getContainer(file).getName(), completed); if(log.isDebugEnabled()) { log.debug(String.format("Creating SLO manifest %s for %s", manifest, file));
if(!status.isAppend()) { segments.addAll(new SwiftSegmentService(session, regionService).list(file));
keys.add(containerService.getKey(file)); for(Path segment : segmentService.list(file)) { keys.add(containerService.getKey(segment));
final String manifest = segmentService.manifest(containerService.getContainer(file).getName(), completed); if(log.isDebugEnabled()) { log.debug(String.format("Creating SLO manifest %s for %s", manifest, file));
); final Path segment = segmentService.getSegment(file, status.getLength(), ++segmentNumber); final ByteArrayEntity entity = new ByteArrayEntity(content, off, len); final HashMap<String, String> headers = new HashMap<>();
if(file.isFile()) { final List<Path> segments = segmentService.list(file); session.getClient().deleteObject(regionService.lookup(file), containerService.getContainer(file).getName(), containerService.getKey(file));
public SwiftLargeObjectUploadFeature(final SwiftSession session, final SwiftRegionService regionService, final SwiftObjectListService listService, final SwiftSegmentService segmentService, final Write<StorageObject> writer, final Long segmentSize, final Integer concurrency) { super(writer); this.session = session; this.regionService = regionService; this.writer = writer; this.segmentSize = segmentSize; this.segmentService = segmentService; this.listService = listService; this.concurrency = concurrency; }
@Override public Append append(final Path file, final Long length, final Cache<Path> cache) throws BackgroundException { if(length >= preferences.getLong("openstack.upload.largeobject.threshold")) { if(preferences.getBoolean("openstack.upload.largeobject")) { long size = 0L; final List<Path> segments = listService.list(segmentService.getSegmentsDirectory(file, length), new DisabledListProgressListener()).toList(); if(segments.isEmpty()) { return Write.notfound; } for(Path segment : segments) { size += segment.attributes().getSize(); } return new Append(size); } } if(finder.withCache(cache).find(file)) { final PathAttributes attr = attributes.withCache(cache).find(file); return new Append(false, true).withSize(attr.getSize()).withChecksum(attr.getChecksum()); } return Write.notfound; }
public SwiftDeleteFeature(final SwiftSession session) { this(session, new SwiftSegmentService(session), new SwiftRegionService(session)); }
public SwiftMultipleDeleteFeature(final SwiftSession session) { this(session, new SwiftSegmentService(session), new SwiftRegionService(session)); }
public SwiftLargeUploadWriteFeature(final SwiftSession session, final Find finder, final AttributesFinder attributes) { this(session, new SwiftRegionService(session), new SwiftSegmentService(session), finder, attributes); }
public SwiftWriteFeature(final SwiftSession session, final SwiftRegionService regionService) { this(session, regionService, new SwiftObjectListService(session, regionService), new SwiftSegmentService(session, regionService), new DefaultFindFeature(session)); }
public SwiftLargeUploadWriteFeature(final SwiftSession session, final SwiftRegionService regionService) { this(session, regionService, new SwiftSegmentService(session, regionService), new DefaultFindFeature(session), new DefaultAttributesFinderFeature(session)); }
return (T) new SwiftLargeUploadWriteFeature(this, regionService, new SwiftSegmentService(this, regionService)); return (T) new SwiftMultipleDeleteFeature(this, new SwiftSegmentService(this, regionService), regionService);