Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在amazon S3上上载大小超过3 gb的文件_Javascript_Jquery_Asp.net_Asp.net Mvc_Amazon S3 - Fatal编程技术网

Javascript 在amazon S3上上载大小超过3 gb的文件

Javascript 在amazon S3上上载大小超过3 gb的文件,javascript,jquery,asp.net,asp.net-mvc,amazon-s3,Javascript,Jquery,Asp.net,Asp.net Mvc,Amazon S3,我试图上传文件大小超过3 gb的亚马逊当我上传文件的大小是小的,他们得到上传快乐 但当我尝试上传大文件时,它会显示错误HTTP400 有谁能告诉我哪里出了问题,或者我需要成批上传文件吗。 提前谢谢 public bool UploadFileDicom(HttpPostedFileBase file) { bool isSuccess = false; try { string bucketName = Conv

我试图上传文件大小超过3 gb的亚马逊当我上传文件的大小是小的,他们得到上传快乐 但当我尝试上传大文件时,它会显示错误HTTP400

有谁能告诉我哪里出了问题,或者我需要成批上传文件吗。 提前谢谢

  public bool UploadFileDicom(HttpPostedFileBase file)
    {
        bool isSuccess = false;
        try
        {
            string bucketName = Convert.ToString(WebConfigurationManager.AppSettings["iqcDicomBucket"]);
            client = new AmazonS3Client(AWS_ACCESS_KEY, AWS_SECRET_KEY, Amazon.RegionEndpoint.USWest2);
            var request = new PutObjectRequest()
            {
                BucketName = bucketName,
                CannedACL = S3CannedACL.PublicRead,//PERMISSION TO FILE PUBLIC ACCESIBLE
                Key = file.FileName,
                InputStream = file.InputStream//SEND THE FILE STREAM

            };
            client.PutObject(request);
            isSuccess = true;

        }
        catch (Exception ex)
        {
            logger.Error(DateTime.Now + "Error in GlobalComman.cs, CreateDocStatus_TraningAndValidation function: " + ex.Message);
            throw ex;

        }
        return isSuccess;
    }

首先,不允许上载超过5gb的文件(6gb必须失败,但不能上载2gb文件):

但是上载大文件可能会出现各种问题,因此,为了避免单个上载出现问题,建议使用多部分上载

使用上载部件中的对象可以上载大对象,最多可达5 TB

多部分上传API旨在改善较大对象的上传体验。可以部分上载对象。这些对象部分可以独立、以任何顺序和并行方式上载。对于大小从5 MB到5 TB的对象,可以使用多部分上载。有关详细信息,请参见使用多部分上载上载对象。有关更多信息,请参阅使用多部分上载API上载对象

以下Java代码示例将部分中的文件上载到Amazon S3存储桶:

public class UploadObjectMultipartUploadUsingHighLevelAPI {

    public static void main(String[] args) throws Exception {
        String existingBucketName = "*** Provide existing bucket name ***";
        String keyName            = "*** Provide object key ***";
        String filePath           = "*** Path to and name of the file to upload ***";  

        TransferManager tm = new TransferManager(new ProfileCredentialsProvider());        
        System.out.println("Hello");
        // TransferManager processes all transfers asynchronously, 
        // so this call will return immediately.
        Upload upload = tm.upload(
                existingBucketName, keyName, new File(filePath));
        System.out.println("Hello2");

        try {
            // Or you can block and wait for the upload to finish
            upload.waitForCompletion();
            System.out.println("Upload complete.");
        } catch (AmazonClientException amazonClientException) {
            System.out.println("Unable to upload file, upload was aborted.");
            amazonClientException.printStackTrace();
        }
    }
}

@JordiCastilla关于S3多部分和5GB阈值是正确的。。。但您的第一个问题是本地问题:

maxRequestLength="2147482624" 
嗯,大约2吉布。所以,当你说你的控制器没有启动时,这表明你的400错误甚至不是像问题所暗示的那样来自S3。您的本地配置导致浏览器的请求在飞行中被取消,因为它比您的本地配置允许的大

您的第一步似乎是增加此配置值,请记住,当您超过5GB阈值时,随后还需要过渡到多部分上传到S3


另外,请记住,正在进行的请求也会占用服务器上的临时磁盘空间,因此即使该值已经很大(更不用说将其设置得更大),也会使您面临拒绝服务攻击的风险,虚假请求可能会耗尽您的临时空间,从而禁用您的站点。

请退出。它以可配置大小的块上传文件。因为您的要求是在浏览器中完成,所以这应该可以工作。

这是我的web配置设置,请与amazon检查他们允许的最大文件大小。但是,当我尝试上载大小为6 gb的文件时,它会显示错误http 400,并且它不会执行控制器代码,也不会进行应答,但我是否需要将文件分块并使用上传。如果是,我如何在流中获取文件如果我上传的文件大小超过gb我的控制器未执行我在浏览器中执行此操作感谢您回复maxRequestLength=“2147482624”这是我使用jquery或BlueImp之类的html文件上传程序所能做的最大工作。你能建议我正在搜索的任何东西吗?没有得到任何解决方案。不幸的是,“要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题与堆栈溢出无关”--