S3Test.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2016 Robin Appelman <robin@icewind.nl>
  4. *
  5. * @license GNU AGPL version 3 or any later version
  6. *
  7. * This program is free software: you can redistribute it and/or modify
  8. * it under the terms of the GNU Affero General Public License as
  9. * published by the Free Software Foundation, either version 3 of the
  10. * License, or (at your option) any later version.
  11. *
  12. * This program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU Affero General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU Affero General Public License
  18. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  19. *
  20. */
  21. namespace Test\Files\ObjectStore;
  22. use OC\Files\ObjectStore\S3;
  23. class MultiPartUploadS3 extends S3 {
  24. public function multiPartUpload($urn, $stream) {
  25. parent::multiPartUpload($urn, $stream);
  26. }
  27. }
  28. /**
  29. * @group PRIMARY-s3
  30. */
  31. class S3Test extends ObjectStoreTest {
  32. protected function getInstance() {
  33. $config = \OC::$server->getConfig()->getSystemValue('objectstore');
  34. if (!is_array($config) || $config['class'] !== 'OC\\Files\\ObjectStore\\S3') {
  35. $this->markTestSkipped('objectstore not configured for s3');
  36. }
  37. return new MultiPartUploadS3($config['arguments']);
  38. }
  39. public function testMultiPartUploader() {
  40. $s3 = $this->getInstance();
  41. $s3->multiPartUpload('multiparttest', fopen(__FILE__, 'r'));
  42. $result = $s3->readObject('multiparttest');
  43. $this->assertEquals(file_get_contents(__FILE__), stream_get_contents($result));
  44. }
  45. }