summaryrefslogtreecommitdiffstats
path: root/apps/files_external
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2017-04-20 17:08:22 +0200
committerRobin Appelman <robin@icewind.nl>2017-09-18 15:16:27 +0200
commitdad18baec8274995ff384789ccc2577aabc6dde8 (patch)
tree15e53802f49cb7d32e664f1e75f6234014b68a88 /apps/files_external
parentcf1da57c1d38852a21aea701fd9194c0c6226c20 (diff)
downloadnextcloud-server-dad18baec8274995ff384789ccc2577aabc6dde8.tar.gz
nextcloud-server-dad18baec8274995ff384789ccc2577aabc6dde8.zip
update aws sdk and move it to 3rdparty
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'apps/files_external')
-rw-r--r--apps/files_external/lib/Lib/Storage/AmazonS3.php38
1 files changed, 21 insertions, 17 deletions
diff --git a/apps/files_external/lib/Lib/Storage/AmazonS3.php b/apps/files_external/lib/Lib/Storage/AmazonS3.php
index 9dab25f7197..edcc084ae44 100644
--- a/apps/files_external/lib/Lib/Storage/AmazonS3.php
+++ b/apps/files_external/lib/Lib/Storage/AmazonS3.php
@@ -36,10 +36,6 @@
namespace OCA\Files_External\Lib\Storage;
-set_include_path(get_include_path() . PATH_SEPARATOR .
- \OC_App::getAppPath('files_external') . '/3rdparty/aws-sdk-php');
-require_once 'aws-autoloader.php';
-
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
use Icewind\Streams\CallbackWrapper;
@@ -230,21 +226,29 @@ class AmazonS3 extends \OC\Files\Storage\Common {
try {
$files = array();
- $result = $this->getConnection()->getIterator('ListObjects', array(
+ $results = $this->getConnection()->getPaginator('ListObjects', [
'Bucket' => $this->bucket,
'Delimiter' => '/',
- 'Prefix' => $path
- ), array('return_prefixes' => true));
-
- foreach ($result as $object) {
- if (isset($object['Key']) && $object['Key'] === $path) {
- // it's the directory itself, skip
- continue;
+ 'Prefix' => $path,
+ ]);
+
+ foreach ($results as $result) {
+ // sub folders
+ if (is_array($result['CommonPrefixes'])) {
+ foreach ($result['CommonPrefixes'] as $prefix) {
+ $files[] = substr(trim($prefix['Prefix'], '/'), strlen($path));
+ }
+ }
+ foreach ($result['Contents'] as $object) {
+ if (isset($object['Key']) && $object['Key'] === $path) {
+ // it's the directory itself, skip
+ continue;
+ }
+ $file = basename(
+ isset($object['Key']) ? $object['Key'] : $object['Prefix']
+ );
+ $files[] = $file;
}
- $file = basename(
- isset($object['Key']) ? $object['Key'] : $object['Prefix']
- );
- $files[] = $file;
}
return IteratorDirectory::wrap($files);
@@ -270,7 +274,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
));
$stat['size'] = $result['ContentLength'] ? $result['ContentLength'] : 0;
- if ($result['Metadata']['lastmodified']) {
+ if (isset($result['Metadata']['lastmodified'])) {
$stat['mtime'] = strtotime($result['Metadata']['lastmodified']);
} else {
$stat['mtime'] = strtotime($result['LastModified']);