2016-06-13 9 views

答えて

0

SoftLayer Object Storage PHP Clientを使用してファイルをアップロードするPHP例:

<?php 
require_once ('lib/ObjectStorage/Util.php'); 

class ObjectStorageSL{ 

    var $objectStorage; 
    public function __construct($host, $username, $password, $options) { 

     $this -> objectStorage = new ObjectStorage($host, $username, $password, $options); 

    } 

    /** 
    * This method shows token and url from an object storage 
    * @var $objectStorage - Object Storage connection 
    */ 
    function displayTokenUrl() { 
     print("Token: " . $this -> objectStorage -> getAuthenticationData() -> authToken . "\n"); 
     print("Url: " . $this -> objectStorage -> getAuthenticationData() -> objectStorageUrl); 
    } 

    /** 
    * This method uploads a file located in your local machine 
    * @var $objectStorage - Object Storage connection 
    * @var $containerName - The container's name where you want to upload the object 
    * @var $objectName - The object's name that you wish to assign for the file uploaded 
    * @var $path - The path where the file is located 
    */ 
    function uploadFile($containerName, $objectName, $path) { 
     try { 
      $result = $this -> objectStorage -> with($containerName . "/" . $objectName) -> setLocalFile($path) -> create(); 
      print("\n".$result -> getUrl()); 
      print("\nThe file has been uploaded"); 
     } catch(Exception $e) { 
      echo "\nError: " . $e -> getMessage(); 
     } 
    } 
} 


/** 
* Declare Object Storage parameters 
*/ 
$host = 'https://mil01.objectstorage.softlayer.net/auth/v1.0/'; 
// Declare your username and password for Object Storage connection 
$username = 'set me'; 
$password = 'set me'; 
$options = array('adapter' => ObjectStorage_Http_Client::SOCKET, 'timeout' => 10); 

/** 
* Create Object Storage Connection 
*/ 
$objectStorage = new ObjectStorageSL($host, $username, $password, $options); 

/** 
* Display Token and Url 
*/ 
$objectStorage -> displayTokenUrl(); 
$path = "C:\Project\task.xml"; 
$objectStorage -> uploadFile("rcvTest", "task1.xml", $path); 

私は10メガバイトよりも大きなファイルとそれをテストしていないが、それは動作するはずです、あなたは悩みやご質問がある場合は私に知らせて

+0

私は今このアプローチを使用していますが、これは私が必要とする100%ではありません。 など。私は50MBのサイズのファイルを持っています。私は彼を5つの部分に分割し、それらを1つずつアップロードして一緒に集めてSoftlayerサーバーに入れることはできますか? (最初のリクエストではファイルが作成され、他のリクエストではこのようなファイルにデータが追加されます) –

+0

大きなファイルでは不幸なことに、クライアントで分割する方法がありませんでした。 とにかく、この情報をご覧ください。 http://docs.openstack.org/developer/swift/api/large_objects.html –

関連する問題