Exemplo n.º 1
0
    define('__TEXTCUBE_ATTACH_DIR__', 'gs://' . $_SERVER['blog_fs_bucket'] . '/attach');
    define('__TEXTCUBE_SKIN_STORAGE__', 'gs://' . $_SERVER['blog_fs_bucket'] . '/skin');
}
if (!array_key_exists('blog_fs_bucket', $_SERVER)) {
    syslog('Missing a blog_fs_bucket env variable in app.yaml');
    header("HTTP/1.0 404 Not Found");
    exit;
}
// Modify SCRIPT_NAME for other codes.
$_SERVER["SCRIPT_NAME"] = str_replace('gae.php', '', $_SERVER["SCRIPT_NAME"]);
// Handles $blogURL/attach/... for attachment files.
if (substr($_SERVER["REQUEST_URI"], 0, 8) == '/attach/') {
    $requestFilename = strtok(substr($_SERVER["REQUEST_URI"], 7), '?#');
    if (file_exists(__TEXTCUBE_ATTACH_DIR__ . $requestFilename)) {
        require 'library/function/file.php';
        $option = ['content_type' => getMIMEType('', $requestFilename)];
        CloudStorageTools::serve(__TEXTCUBE_ATTACH_DIR__ . $requestFilename, $option);
        exit;
    }
}
// Handles $blogURL/blog/skin/customize... for custom skin files.
if (substr($_SERVER["REQUEST_URI"], 0, 21) == '/skin/blog/customize/') {
    $requestFilename = strtok(substr($_SERVER["REQUEST_URI"], 5), '?#');
    if (file_exists(__TEXTCUBE_SKIN_STORAGE__ . $requestFilename)) {
        require 'library/function/file.php';
        $option = ['content_type' => getMIMEType('', $requestFilename)];
        CloudStorageTools::serve(__TEXTCUBE_SKIN_STORAGE__ . $requestFilename, $option);
        exit;
    }
}
require_once 'rewrite.php';
Exemplo n.º 2
0
<?php

require_once __DIR__ . '/config.php';
use google\appengine\api\cloud_storage\CloudStorageTools;
if (file_exists(MARKERS_JS)) {
    CloudStorageTools::serve(MARKERS_JS);
} else {
    header('Content-type: application/javascript');
}
 public function testServeRangeHeaderSuccess()
 {
     $this->expectFilenameTranslation("/gs/some_bucket/some_object", "some_blob_key");
     $filename = "gs://some_bucket/some_object";
     $expected_headers = ["X-AppEngine-BlobKey" => "some_blob_key", "X-AppEngine-BlobRange" => "bytes=100-200", "Content-Disposition" => "attachment; filename=foo.jpg", "Content-Type" => "image/jpeg"];
     $options = ["save_as" => "foo.jpg", "use_range" => true, "content_type" => "image/jpeg"];
     $_SERVER["HTTP_RANGE"] = "bytes=100-200";
     CloudStorageTools::serve($filename, $options);
     $this->assertEquals(ksort($this->sent_headers), ksort($expected_headers));
     $this->apiProxyMock->verify();
 }
Exemplo n.º 4
0
 public function testServeUsingDefaultKeyword()
 {
     $gs_filename = 'gs://#default#/some_object';
     $this->expectGetDefaultBucketName('some_bucket');
     $this->expectApcFetch('__DEFAULT_GCS_BUCKET_NAME__', false, false);
     $this->expectApcStore('__DEFAULT_GCS_BUCKET_NAME__', 'some_bucket', true);
     $this->expectFilenameTranslation("/gs/some_bucket/some_object", "some_blob_key");
     $expected_headers = ["X-AppEngine-BlobKey" => "some_blob_key", "X-AppEngine-BlobRange" => "bytes=1-2", "Content-Disposition" => "attachment; filename=foo.jpg"];
     $options = ["start" => 1, "end" => 2, "save_as" => "foo.jpg"];
     CloudStorageTools::serve($gs_filename, $options);
     $this->assertEquals(ksort($this->sent_headers), ksort($expected_headers));
     $this->apiProxyMock->verify();
 }