标签: resume-upload

如何使用Delphi 2010优化上传例程?

尚未发布的 Delphi 2010应用程序允许用户将他们的文件上传到我的服务器.现在我正在使用HTTPS POST发送文件,(简化)算法基本上是:

  1. 将文件拆分为"切片"(每个256KB)
  2. 对于每个切片,将其POST到服务器

即.对于1MB文件:

--> Get Slice #1 (256KB)
--> Upload Slice #1 using TidHTTP.Post()

--> Get Slice #2 (256KB)
--> Upload Slice #2 using TidHTTP.Post()

--> Get Slice #3 (256KB)
--> Upload Slice #3 using TidHTTP.Post()

--> Get Slice #4 (256KB)
--> Upload Slice #4 using TidHTTP.Post()
Run Code Online (Sandbox Code Playgroud)

我正在使用Indy 10.我(ab)一遍又一遍地使用我的探查器,除了更改上传例程本身之外,没有太多要优化.

我还使用多线程,尽管我尽了最大努力来优化我的代码,我的基准仍然告诉我,我可以做的更好(也有其他很好的优化软件,做实现了很多更好的时机......几乎两倍快速上传例程!)

我知道这不是我的服务器的错...这是我仍然需要探索的想法:

  1. 我尝试在单个POST中对切片进行分组,这自然会导致性能提升(20-35%),但现在可以降低恢复能力.

  2. 我也考虑过使用SFTP/SSH,但我不确定它是否很快.

  3. 使用Web套接字实现可恢复上传(如此组件),我也不确定速度.

现在我的问题是:我有什么办法可以加快上传速度吗?我愿意接受我可以实施的任何建议,包括命令行工具(如果许可证允许我将其与我的应用程序一起发货),前提是:

  1. 支持可恢复上传
  2. 快速!
  3. 合理的内存使用情况
  4. 安全并允许登录/用户身份验证

此外,由于主要的安全问题,FTP不是我想要实现的东西.

非常感谢!

delphi performance upload indy resume-upload

7
推荐指数
1
解决办法
1426
查看次数

2小时后Google Drive Python API可恢复上传错误401

首先,很抱歉,这是一个太愚蠢的问题……这是我第一次尝试使用此脚本中涉及的任何技术(Python,驱动器api,oauth 2.0等)。我发誓我一直在搜索并尝试这个问题大约一个星期,然后再发布问题。呵呵呵

我正在尝试使用google-api-python-client上传仅在终端机Linux Debian上的大文件(3.5GiB)。我已经成功地上传了小文件,但是当我尝试上传大文件时,上传开始于HTTP 401错误(未经授权)后约1〜2小时停止。我一直在寻找如何获取新的访问令牌,但收效甚微。

到目前为止,这是我的(更新的)代码:

#!/usr/bin/python

import httplib2
import pprint
import time

from apiclient.discovery import build
from apiclient.http import MediaFileUpload
from apiclient import errors
from oauth2client.client import OAuth2WebServerFlow

# Copy your credentials from the APIs Console
CLIENT_ID = 'myclientid'
CLIENT_SECRET = 'myclientsecret'

# Check https://developers.google.com/drive/scopes for all available scopes
OAUTH_SCOPE = 'https://www.googleapis.com/auth/drive'

# Redirect URI for installed apps
REDIRECT_URI = 'urn:ietf:wg:oauth:2.0:oob'

# Run through the OAuth flow and retrieve credentials
flow = OAuth2WebServerFlow(CLIENT_ID, CLIENT_SECRET, OAUTH_SCOPE, REDIRECT_URI)
authorize_url …
Run Code Online (Sandbox Code Playgroud)

python http-status-code-401 google-drive-api google-api-python-client resume-upload

5
推荐指数
1
解决办法
3242
查看次数

使用PHP API恢复上传到Google云端存储

我可以使用Google PHP API CLIENT将小尺寸文件成功上传到Google云端存储,但无法上传300MB文件.返回内存错误.这是我的代码.

$storage = new Google_Service_Storage($client);

    $file_name = "filenameo.zip";

    $obj = new Google_Service_Storage_StorageObject();
    $obj->setName($file_name);

    $resp = $storage->objects->insert(
        "bucketname",
        $obj,
        array('name' => $file_name, 'data' => file_get_contents("300mb-file.zip"), 'uploadType' => 'media')
    );
Run Code Online (Sandbox Code Playgroud)

我试图将UploadType更改为可恢复..但没有运气.请帮忙.

更新:使用Http作为Brandon Yarbrough的回答

收到错误(致命错误:未捕获的异常'Google_IO_Exception')

$storage = new Google_Service_Storage($client);

$obj = new Google_Service_Storage_StorageObject();

$obj->setName("filenameo.zip");
$obj->setBucket("bucketname");


$filen = "300mb-file.zip";
$mimetype = mime_content_type($filen);


$chunkSizeBytes = 1 * 1024 * 1024;
$client->setDefer(true);
$status = false;



$filetoupload = array('name' => $file_name, 'data' => $filen, 'uploadType' => 'media');

$request = $storage->objects->insert("bucketname",$obj,$filetoupload); …
Run Code Online (Sandbox Code Playgroud)

php google-cloud-storage google-api-php-client resume-upload

2
推荐指数
2
解决办法
3268
查看次数