dshakcsq64956 2017-03-09 11:04
浏览 56

基于浏览器的上传到OpenStack ObjectStorage

I want to give my users possibility to upload files directly to my cloud on OpenStack using temp url's and HTML POST form.
In openstack docs they have: Upload objects directly to the Object Storage system from a browser by using form POST middleware
But i don't know how to build correct HTML form? Any one have a example how to do it in PHP? Below my code:

$client = new OpenStack('https://auth.cloud.ovh.net/v2.0/', array(
        'username' => 'xxxxx',
        'password' => 'xxxxx',
        'tenantId' => 'xxxxx'
    ));

    $objectStoreService = $client->objectStoreService('swift', 'SBG1');

    $container = $objectStoreService->getContainer("XXXXX");
    $object = $container->dataObject();
    $object->setName("test");

    $expire = 60*10;
    $tempUrl = $object->getTemporaryUrl($expire, "PUT");

    return $this->render("CloudUpload:Main:index.html.twig", array("url" => $tempUrl));

OpenStack class from Rackspace github

    {% block body %}
<form method="POST" action="{{ url }}" enctype="multipart/form-data">
    <input type="file" name="file">
    <button name="submit" type="submit">Send</button>
</form>
    {% endblock %}

Response from cloud if I send this request is:

400 Bad Request
FormPost: Max File Count Exceeded

edit: Maybe create AJAX request with this data will be solution?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 易康econgnition精度验证
    • ¥15 线程问题判断多次进入
    • ¥15 msix packaging tool打包问题
    • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
    • ¥15 python的qt5界面
    • ¥15 无线电能传输系统MATLAB仿真问题
    • ¥50 如何用脚本实现输入法的热键设置
    • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
    • ¥30 深度学习,前后端连接
    • ¥15 孟德尔随机化结果不一致