FS Bucket - 聪明云,如何正确使用?

问题描述 投票:0回答:1

我们正在尝试在我们的应用程序中实现存储桶系统。

FS-Bucket 也是由 Clever Cloud(我们的 PaaS/IaaS 提供商)提供的替代方案。

问题可能出在文档中,该文档根本没有很好地讲述或扩展该工具。

我们如何与我们的水桶正确交互?

php bucket clever-cloud
1个回答
0
投票
  1. 使用文档中提到的

    CC_FS_BUCKET

  2. 使用FTP(无聊且缓慢,但它有效)。

一旦您获取 FS Bucket,它将为您提供 HOST 和其他凭据。

这个想法是在我们需要使用存储桶的一个应用程序中设置环境变量。

类似这样的:

CC_FS_BUCKET=/my-bucket-folder:bucket-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-fsbucket.services.clever-cloud.com

这将挂载一个文件夹以直接访问我们的存储桶(** 在执行环境中 **)

一旦完成并部署,我们可以尝试像这个简单的例子:

<?php

try {

    $file = $_GET['file'];

    if (empty($file) || !isset($file)) {
        echo "No file specified or included";
        exit;
    }

    // check if file exists in current folder
    if (file_exists(ROOT_DIR_APP . "/bucket-dir" . $file))
        usingLocalFile(ROOT_DIR_APP . "/bucket-dir" . $file);


} catch (Exception $e) {
    echo $e->getMessage();
}

function usingLocalFile($file = '')
{

    $ext = pathinfo($file, PATHINFO_EXTENSION);
    if (in_array($ext, ['png', 'jpg', 'jpeg', 'gif', 'bmp', 'svg']))
        header('Content-Type: image/' . $ext);
    else if (in_array($ext, ['pdf', 'json']))
        header('Content-Type: application/' . $ext);
    else
        header('Content-Type: application/octet-stream');

    header('Content-Disposition: inline; filename="' . basename($file) . '"');

    header('Content-Length: ' . filesize($file));
    header('Accept-Ranges: bytes');

    @readfile($file);

    echo "File Downloaded";
}

注意:除非您创建一个(git-ignored)文件夹来模拟存储桶,否则这在本地不起作用。

遵循this仅在文档中的好部分

不要忘记将安装的文件夹和 fs-bucket 主机的路径替换为目标文件夹路径(确保该文件夹不存在)和您的 fs-bucket 主机

© www.soinside.com 2019 - 2024. All rights reserved.