添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • PHP 5.3.3+ compiled with the cURL, JSON, and XML extensions
  • A recent version of cURL 7.16.2+ compiled with OpenSSL and zlib
  • 安装AWS SDK for PHP

    curl -O http://docs.aws.amazon.com/aws-sdk-php/v2/download/aws.phar
    

    初始化,设置帐号信息和域名

    require 'aws.phar';
    $cli = Aws\S3\S3Client::factory(array(
        'endpoint' => 'http://ss.bscstorage.com',
        'credentials' => array(
            'key' => 'your access key',
            'secret' => 'your secret key',
        'region' => 'us-east-1',
    

    文件操作接口

    ACL可设置为:'private' 或 'public-read' 或 'public-read-write' 或 'authenticated-read' Body 为文件的内容

    $resp = $cli->putObject(array(
        'ACL' => 'public-read',
        'Bucket' => 'test-bucket-xxx',
        'Key' => 'test-key-xxx',
        'ContentType' => 'image/jpeg',
        'Body' => 'file content as a string'
    

    使用upload接口上传,适合大文件上传,支持自动分片上传

    $resp = $cli->upload('test-bucket-xxx',
        'test-key-xxx', fopen('path/to/my/file/test.txt', 'r'));
    

    上传整个目录, 参数分别为需要上传的本地目录,bucket的名字,添加的前缀

    $resp = $cli->uploadDirectory('/root/mydata_dir',
        'test-bucket-xxx',
    
    $resp = $cli->getObject(array(
        'Bucket' => 'test-bucket-xxx',
        'Key' => 'test-key-xxx',
    

    下载文件到本地目录, 参数分别是文件保存目录,bucket的名字,要下载的文件的前缀

    $resp = $cli->downloadBucket('/root/download_dir',
        'test-bucket-xxx',
    

    获取文件的URL

    获取已签名的URL用来下载文件,可设置签名过期时间。

    $cmd = $cli->getCommand('GetObject', array(
        'Bucket' => 'test-bucket-xxx',
        'Key' => 'test-key-xxx',
    $url = $cmd->createPresignedUrl('+100 seconds');
    
    $resp = $cli->deleteObject(array(
        'Bucket' => 'test-bucket-xxx',
        'Key' => 'test-key-xxx',
    

    获取文件的ACL

    $resp = $cli->getObjectAcl(array(
        'Bucket' => 'test-bucket-xxx',
        'Key' => 'test-key-xxx',
    

    设置文件的ACL

    使用预定义的ACL

    支持的预定义ACL有:'private', 'public-read', 'public-read-write' 或 'authenticated-read'

    $resp = $cli->putObjectAcl(array(
        'ACL' => 'public-read-write',
        'Bucket' => 'test-bucket-xxx',
        'Key' => 'test-key-xxx',
    
    使用自定义的ACL

    可指定的Permission包括:'FULL_CONTROL', 'WRITE', 'WRITE_ACP', 'READ', 'READ_ACP'

    $resp = $cli->putObjectAcl(array(
        'Grants' => array(
            array(
                'Grantee' => array(
                    'ID' => 'user_foo', //请替换为真实存在的用户
                    'Type' => 'CanonicalUser',
                'Permission' => 'FULL_CONTROL',
        'Owner' => array(
            'ID' => 'your-user-name',
        'Bucket' => 'test-bucket-xxx',
        'Key' => 'test-key-xxx',
    

    桶操作接口

    ACL可设置为:'private' 或 'public-read' 或 'public-read-write' 或 'authenticated-read'

    $resp = $cli->createBucket(array(
        'Bucket' => 'test-bucket-xxx',
        'ACL' => 'public-read',
    

    列出桶中所包含的文件, 每次最多返回1000个文件

    $resp = $cli->listObjects(array(
        'Bucket' => 'test-bucket-xxx',
        'Prefix' => '',
        'Marker' => '',
    

    列出桶中所包含的所有文件

    $marker = '';
    while (true):
        $resp = $cli->listObjects(array(
            'Bucket' => 'test-bucket-xxx',
            'Marker' => $marker,
        if($resp['Contents'] == NULL)
            break;
        foreach($resp['Contents'] as $content)
            var_dump($content['Key']);
            $marker = $content['Key'];
    endwhile;
    
    $resp = $cli->deleteBucket(array(
        'Bucket' => 'test-bucket-xxx',
    

    获取桶的ACL

    $resp = $cli->getBucketAcl(array(
        'Bucket' => 'test-bucket-xxx',
    

    设置桶的ACL

    使用预定义的ACL

    支持的预定义ACL有:'private', 'public-read', 'public-read-write' 或 'authenticated-read'

    $resp = $cli->putBucketAcl(array(
        'ACL' => 'public-read-write',
        'Bucket' => 'test-bucket-xxx',
    
    使用自定义的ACL:

    可指定的Permission包括:'FULL_CONTROL', 'WRITE', 'WRITE_ACP', 'READ', 'READ_ACP'

    $resp = $cli->putBucketAcl(array(
        'Grants' => array(
            array(
                'Grantee' => array(
                    'ID' => 'user_foo', //请替换为真实存在的用户
                    'Type' => 'CanonicalUser',
                'Permission' => 'FULL_CONTROL',
        'Owner' => array(
            'ID' => 'your-user-name',
        'Bucket' => 'test-bucket-xxx',
    

    服务操作接口

    列出所有的桶

    $resp = $cli->listBuckets();
    

    AWS 官方 SDK aws-sdk-php 接口详细文档 api-reference