【问题标题】:How to handle CollectionFS saving failures如何处理 CollectionFS 保存失败
【发布时间】:2015-03-17 16:27:41
【问题描述】:

我正在使用 collectionFS,尤其是 S3 存储适配器。

大多数文件都可以正常上传,之后我可以毫无问题地下载它们。

有时我得到一个看起来加载正常的文件(Files.insert(blob,callback) 返回到回调没有错误)但后来当我去下载它们时fsFile.url() 返回null

https://github.com/CollectionFS/Meteor-CollectionFS#after-the-upload 说:

如果任何存储适配器未能将任何副本保存在指定存储中,服务器将定期重试保存它们。在可配置的尝试保存失败次数后,服务器将放弃。

但是我知道没有针对此类失败的回调。此外,当查看fsFile.uploadProgress() 时,我得到了 100%。

因此,基本问题是在上传期间一切看起来都很好,而我的应用仅在尝试下载文件时检测到问题。

  1. 有没有办法检测存储适配器中的上传失败?

  2. fsFile.url() 返回null 还有什么症状?

这是 mongodb 中这些损坏的 fsFile 对象之一的示例:

{
  "_id" : "uqAYajqCv68HmEJhu",
  "original" : {
    "updatedAt" : ISODate("2015-03-16T23:04:37.200Z"),
    "size" : 699072,
    "type" : ""
    },
  "chunkSize" : 2097152,
  "chunkCount" : 0,
  "chunkSum" : 1,
}

【问题讨论】:

    标签: meteor


    【解决方案1】:

    在新版本的FScollection上,在server侧集成了3个事件,stored,uploadederror

    Images.on('error', function (fileObj) {
          console.log("The " + fileObj + " with the _id " + fileObj._id " + just get an error when uploading")
        });
    

    没有关于此的文档,因为 raix 和 aldeed 清理了自述文件。

    【讨论】:

    • 谢谢 Ethaan,让我看看我能用它做什么。
    • @MichelFloyd 你明白了吗?
    • 我正在使用Files.on('uploaded',function(fileObj){});,并且确实在服务器上看到了回调,谢谢!!我们将重试次数增加到 20 次,所以我们还没有看到 on('error') 着火。
    • @Michel Floyd 太棒了,请随时投票或接受答案以帮助有类似问题的新人
    • 你知道在客户端处理这个很热吗?
    猜你喜欢
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多