PHP - 移动到 AWS S3 后删除本地文件 - 文本文件忙错误

标签 php amazon-web-services amazon-s3 unlink

我正在使用 AWS PHP SDK 将文件从我们的服务器移动到 S3,移动后我想删除它们以节省我们服务器上的空间。但是当我尝试这样做时,我收到一个 PHP 警告:Text file busy in/path/to/file

如果我理解正确,我假设当我尝试删除文件时文件仍在上传到 S3。我一直在寻找某种回调,例如 S3 的 uploadComplete 但找不到任何东西。

这是我的代码示例:

  //Upload dir:
  $result = false;

  try{
      $result = $this->aws['s3']->uploadDirectory(
        $options['dir'],
        $options['bucket'],
        $options['key'], array(
        'before' => function(\AWS\Command $command){
                $command['ACL'] = 'public-read';
        })
      );    
   } catch (S3Exception $e) {
      error_log('AWS ERR, failed to add object to bucket: '.$e->getMessage());
   }

  if ($result) {       
    //remove local copy
    array_map('unlink', glob("$options['dir']/*.*"));
    rmdir($options['dir']);        
  }

那么,上传到S3后如何删除目录或文件呢?

最佳答案

在删除文件之前,尝试调用:

gc_collect_cycles();

关于PHP - 移动到 AWS S3 后删除本地文件 - 文本文件忙错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43806266/

相关文章:

php - Levenshtein - 分组酒店名称

php - 选择日期时间不起作用的查询

PHP - 替换图像中的颜色

php - 计算字符串中位数的函数

python-3.x - 使用 boto3 在 DynamoDB 中创建 'SS' 项

amazon-web-services - AWS ec2-授权安全组错误 "Unable to find group"

node.js - 从 nodejs 请求到 s3 的流式响应

swift - 亚马逊签名创建

php - 使用流包装器迭代 S3 存储桶

c# - 在不使用磁盘的情况下即时压缩流