protected function addDebugListener(AbstractSync $sync, $resource) { $sync->getEventDispatcher()->addListener(UploadSync::BEFORE_TRANSFER, function (Event $e) use($resource) { if ($e['command'] instanceof CommandInterface) { $from = $e['command']['Bucket'] . '/' . $e['command']['Key']; $to = $e['command']['SaveAs'] instanceof EntityBodyInterface ? $e['command']['SaveAs']->getUri() : $e['command']['SaveAs']; fwrite($resource, "Downloading {$from} -> {$to}\n"); } elseif ($e['command'] instanceof ResumableDownload) { $from = $e['command']->getBucket() . '/' . $e['command']->getKey(); $to = $e['command']->getFilename(); fwrite($resource, "Resuming {$from} -> {$to}\n"); } }); }
protected function addDebugListener(AbstractSync $sync, $resource) { $sync->getEventDispatcher()->addListener(UploadSync::BEFORE_TRANSFER, function (Event $e) use($resource) { $c = $e['command']; if ($c instanceof CommandInterface) { $uri = $c['Body']->getUri(); $size = $c['Body']->getSize(); fwrite($resource, "Uploading {$uri} -> {$c['Key']} ({$size} bytes)\n"); return; } // Multipart upload $body = $c->getSource(); $totalSize = $body->getSize(); $progress = 0; fwrite($resource, "Beginning multipart upload: " . $body->getUri() . ' -> '); fwrite($resource, $c->getState()->getFromId('Key') . " ({$totalSize} bytes)\n"); $c->getEventDispatcher()->addListener(AbstractTransfer::BEFORE_PART_UPLOAD, function ($e) use(&$progress, $totalSize, $resource) { $command = $e['command']; $size = $command['Body']->getContentLength(); $percentage = number_format($progress / $totalSize * 100, 2); fwrite($resource, "- Part {$command['PartNumber']} ({$size} bytes, {$percentage}%)\n"); $progress += $size; }); }); }
protected function transferCommands(array $commands) { parent::transferCommands($this->filterCommands($commands)); }