带有S3的FineUploader如何在S3上指定对象名

时间:2013-10-12 15:20:06

标签: amazon-s3 fine-uploader

在上传到Amazon S3时,我在哪里指定FineUploader创建的服务器名称的格式或模式?我需要更好地控制如何在S3上创建文件名和路径。感谢。

1 个答案:

答案 0 :(得分:2)

使用objectProperties.key选项。

您可以提供String值或将预期密钥作为String返回的函数。

以下示例演示如何设置密钥并执行阻止操作($.post)。它使用jQuery插件

// <snip>
objectProperties: {
        key: function(fileId) {
            var keyRetrieval = new qq.Promise(),
                filename = $("#fineUploader").fineUploader("getName", fileId);

            $.post("createKey.html", {name: filename})
                .done(function(data) { keyRetrieval.success(data.key); })
                .fail(function() { keyRetrieval.failure(); });

            return keyRetrieval;
        }
    },
// </snip>

一个更简单的例子,

objectProperties: {
        key: function(fileId) {
            var filename = $("#fineUploader").fineUploader("getName", fileId);
            return fileId + "/" + filename;
        }
    },

请注意,如果您想阻止用户覆盖彼此的文件,您应该将这些密钥设为唯一!将每个上传文件放入具有随机密钥的文件夹中会阻止此操作。