﻿<?php
require __DIR__."/vendor/autoload.php";

ini_set("memory_limit", -1);
set_time_limit(600);

use League\Flysystem\Filesystem;
use Aws\S3\S3Client;
use League\Flysystem\AwsS3v3\AwsS3V3Adapter;

error_reporting(E_ALL); ini_set('display_errors','1');
set_time_limit(-1);

/**
 * LOCAL + STORE (S3 like)
 */
$bucket_name = 'avio-dev';
$local_adapter = new League\Flysystem\Local\LocalFilesystemAdapter(
    // Determine root directory
    __DIR__.'/'
);

$client = new Aws\S3\S3Client([
	'endpoint' => 'http://r1-it.storage.cloud.it',
    'credentials' => [
        'key'    => 'AVIO03',
        'secret' => 'Z@ERUFn2_jdaKvs',
    ],
    'region' => 'r1-it',
    'version' => 'latest',
]);

// The internal adapter
$s3_adapter = new League\Flysystem\AwsS3V3\AwsS3V3Adapter(
    // S3Client
    $client,
    // Bucket name
    $bucket_name
);

$s3 = new League\Flysystem\Filesystem($s3_adapter);
$local = new League\Flysystem\Filesystem($local_adapter);

// Add them in the constructor
$manager = new League\Flysystem\MountManager([
    'local' => $local,
    's3' => $s3,
]);
echo "<pre>";

#$files = Storage::disk('public')->allFiles();

#var_dump($files);die();

$response = $client->listObjects(array('Bucket' => $bucket_name, 'MaxKeys' => 1000, 'Prefix' => ''));
$files = $response->getPath('Contents');
$request_id = array();
foreach ($files as $file) {
    $filename = $file['Key'];
    print "\n\nFilename:". $filename;

 }


die();

// CREATE FOLDER
$result_folder_creation = $client->putObject(array( 
                   'Bucket' => $bucket_name,
                   'Key'    => "Createfoldertest/",
                   'Body'   => "",
                   'ACL'    => 'public-read'
                  ));

var_dump($result_folder_creation->get('@metadata'));

/*
array(4) {
  ["statusCode"]=>
  int(200)
  ["effectiveUri"]=>
  string(56) "http://avio-dev.r1-it.storage.cloud.it/Createfoldertest/"
  ["headers"]=>
  array(5) {
    ["content-length"]=>
    string(1) "0"
    ["etag"]=>
    string(34) ""d41d8cd98f00b204e9800998ecf8427e""
    ["accept-ranges"]=>
    string(5) "bytes"
    ["x-amz-request-id"]=>
    string(46) "tx00000f19eec982b05f5e9-00664234ff-adc141e-az1"
    ["date"]=>
    string(29) "Mon, 13 May 2024 15:42:55 GMT"
  }
  ["transferStats"]=>
  array(1) {
    ["http"]=>
    array(1) {
      [0]=>
      array(0) {
      }
    }
  }
}
*/

die();
# die('ok');

// LIST CONTENT
$sortedListing = $manager->listContents('s3://')
    ->sortByPath()
    ->toArray();


var_dump($sortedListing);die();