开发者社区> 问答> 正文

oss代码案例文件被java进程占据

请问:
private class UploadPartThread implements Runnable {
        private File uploadFile;
        private String bucket;
        private String object;
        private long start;
        private long size;
        private List<PartETag> eTags;
        private int partId;
        private OSSClient client;
        private String uploadId;

        UploadPartThread(OSSClient client, String bucket, String object,
                File uploadFile, String uploadId, int partId, long start,
                long partSize, List<PartETag> eTags) {
            this.uploadFile = uploadFile;
            this.bucket = bucket;
            this.object = object;
            this.start = start;
            this.size = partSize;
            this.eTags = eTags;
            this.partId = partId;
            this.client = client;
            this.uploadId = uploadId;
        }

        @Override
        public void run() {

            InputStream in = null;
            try {
                in = new BufferedInputStream(new FileInputStream(uploadFile));//这句代码会锁死文件,java进程独占了这个文件
                in.skip(start);

                UploadPartRequest uploadPartRequest = new UploadPartRequest();
                uploadPartRequest.setBucketName(bucket);
                uploadPartRequest.setKey(object);
                uploadPartRequest.setUploadId(uploadId);
                uploadPartRequest.setInputStream(in);
                uploadPartRequest.setPartSize(size);
                uploadPartRequest.setPartNumber(partId);

                UploadPartResult uploadPartResult = client
                        .uploadPart(uploadPartRequest);

                eTags.add(uploadPartResult.getPartETag());

            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (in != null)
                    try {
                        in.close();
                    } catch (Exception e) {
                    }
            }
        }
    }
我想问,用java上传文件的时候,java进程会占有这个文件。所以,在我的代码里面,文件一旦上传,就不允许删除,要等到进程结束。
这就很是问题了,我用owncloud发现并不会存在锁文件的情况发生,用户可以自由删减编辑上传中的文件。
但是以上代码又错在了哪里?我找不到错误原因。


请大侠指正。

展开
收起
zople 2013-06-28 17:48:40 8510 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载