开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
Computer Science
Confluence

Confluence 6 删除一个附加的文件

你需要具有 删除附件(Delete Attachment)的空间权限来删除一个附加的文件。 希望删除一个附加文件的所有版本: 进入含有附件的页面中。 Go to  > Attachments 选择你希望删除文件的后面的 删除(Delete)按钮。 选择 删除(Delete)来确定你的操作。 删除的文件可以从垃圾箱中进行恢复,你需要具有空间管理员的权限才能进行这个操作。 空间管理员可以删除一个附件的特定版本: Go to  > Attachments 单击附件名边上的扩展箭头来查看附件的所有版本。 针对需要删除的版本,选择 删除(Delete)来进行删除。 删除文件的版本是不能从垃圾箱中进行恢复的。 屏幕截图:附件和附件的版本 https://www.cwiki.us/display/CONF6ZH/Manage+Files

2019年08月23日 0Comments 898Browse 0Like Read more
Confluence

Confluence 6 管理文件

文件是被附加到 Confluence 的页面上的。请参考 Upload Files 页面中的内容来了解如何附加文件到页面中。 一旦文件被附加到页面上了,你可以下载,删除和编辑这些文件。例如,你可以根据需要上传一个文件的新版本,或者修改附加的页面为别的页面。 下载附加文件 任何具有查看页面权限的用户同时也可以下载页面中附加的任何文件。 希望下载一个单独的文件: 在文件预览中,单击 下载(Download) Go to  > Attachments 然后在文件名上单击右键线程保存链接。 希望将页面中附加的所有文件下载成 zip 文件: Go to  > Attachments 单击 下载全部(Download All)。 Confluence 没有提供下载一个空间中所有附件的功能。   https://www.cwiki.us/display/CONF6ZH/Manage+Files

2019年08月22日 0Comments 852Browse 1Like Read more
Computer Science

MessagePack Jackson 数据大小

我们在使用 MessagePack 对 List 对象数据进行序列化的时候,发现序列化以后的二进制数组数据偏大的情况。 请注意,不是所有的 List 对象都会出现这种情况,这个根据你 List 对象中存储的内容有关。 有关本问题的测试源代码请参考:https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/test/java/com/insight/demo/serialize/MessagePackDataTest.java 中的内容。 考察下面的代码: List<MessageData> dataList = MockDataUtils.getMessageDataList(600000); ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory()); raw = objectMapper.writeValueAsBytes(dataList); FileUtils.byteCountToDisplaySize(raw.length); logger.debug("Raw Size: [{}]", FileUtils.byteCountToDisplaySize(raw.length)); 我们会发现,针对这个 60 万个对象的 List 的序列化后的数据达到了 33MB。 如果我们再定义  ObjectMapper 对象的时候添加一部分参数,我们会发现大小将会有显著改善。 请参考下面的代码: List<MessageData> dataList = MockDataUtils.getMessageDataList(600000); ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory()); objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); objectMapper.setAnnotationIntrospector(new JsonArrayFormat()); rawJsonArray = objectMapper.writeValueAsBytes(dataList); logger.debug("rawJsonArray Size: [{}]", FileUtils.byteCountToDisplaySize(rawJsonArray.length)); 如果你运行上面的代码,你会看到程序的输出字符串将会降低到 23MB。 这里面主要是 objectMapper.setAnnotationIntrospector(new JsonArrayFormat()); 这句话起了作用。 在正常的场景中,我们可以通过 注解 JsonIgnore, 将其加到属性上,即解析时即会过滤到属性。 而实际实现,则是由类 JacksonAnnotationIntrospector 中 的 hasIgnoreMarker 来完成,则就是通过读取注解来判断属性是否应该被exclude掉。ObjectMapper中默认的 AnnotationIntrospector 即是 JacksonAnnotationIntrospector 来完成,但我们可以通过 方法 ObjectMapper.setAnnotationIntrospector 来重新指定自定义的实现。   https://www.cwiki.us/display/Serialization/MessagePack+Jackson+Data+Size

2019年08月10日 0Comments 854Browse 0Like Read more
Computer Science

MessagePack Java Jackson Dataformat 在 Map 中不使用 String 为 Key 的序列化

当你希望在 Map 中不使用 String 为 Key,那么你需要使用 MessagePackKeySerializer 来为 key 进行序列化。 本测试方法,可以在 https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/test/java/com/insight/demo/serialize/MessagePackSerializer.java 中找到。 /** * testMessagePackSerializationMapKey */ @Test @JsonSerialize(keyUsing = MessagePackKeySerializer.class) public void testMessagePackSerializationMapKey() { logger.debug("testMessagePackSerializationNotCloseInputStream"); byte[] bytes = new byte[0]; Integer uuid_a = 101; Integer uuid_b = 102; // Instantiate ObjectMapper for MessagePack ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory()); Map<Integer, MessageData> map = new HashMap<>(); MessageData messageData = new MessageData(); // Element A in MAP messageData.setUuid(UUID.randomUUID().toString()); messageData.setName("CWIKI.US - A"); map.put(uuid_a, messageData); // Element B in MAP messageData = new MessageData(); messageData.setUuid(UUID.randomUUID().toString()); messageData.setName("CWIKI.US - B"); map.put(uuid_b, messageData); try { // Serialize a Java object to byte array bytes = objectMapper.writeValueAsBytes(map); logger.debug("Length of Bytes: [{}]", bytes.length); // Deserialize the byte array to a MAP Map<String, MessageData> deserialized = objectMapper.readValue(bytes, new TypeReference<Map<Integer, MessageData>>() { }); logger.debug("Deserialized MAP Count: [{}]", deserialized.size()); logger.debug("MAP index 0: [{}]", deserialized.get(uuid_a).getName()); assertEquals("CWIKI.US - A", deserialized.get(uuid_a).getName()); } catch (JsonProcessingException ex) { logger.error("Serialize Error", ex); } catch (IOException e) { e.printStackTrace(); } }   https://www.cwiki.us/display/Serialization/MessagePack+Jackson+Dataformat

2019年08月09日 0Comments 756Browse 0Like Read more
Computer Science

MessagePack Java Jackson Dataformat 不使用 str8 数据类型的序列化

老的 msgpack-java(例如 0.6.7)并不支持 MessagePack str8 数据类型。 当你的希望的你的应用程序需要支持老的版本的话,你需要禁用这个数据类型,例如使用下面的语句: MessagePack.PackerConfig config = new MessagePack.PackerConfig().withStr8FormatSupport(false); ObjectMapper mapperWithConfig = new ObjectMapper(new MessagePackFactory(config)); // This string is serialized as bin8 type byte[] resultWithoutStr8Format = mapperWithConfig.writeValueAsBytes(str8LengthString); https://www.cwiki.us/display/Serialization/MessagePack+Jackson+Dataformat

2019年08月09日 0Comments 798Browse 0Like Read more
Computer Science

MessagePack Java Jackson 在不关闭输入流(input stream)的情况下反序列化多变量

com.fasterxml.jackson.databind.ObjectMapper 在读取输入流变量的时候默认的将会关闭输入流。 如果你不希望关闭输入流,你可以设置 JsonParser.Feature.AUTO_CLOSE_SOURCE 参数为 false。 本测试方法,可以在 https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/test/java/com/insight/demo/serialize/MessagePackSerializer.java 中找到。   /** * Serialization Not Close input stream */ @Test public void testMessagePackSerializationNotCloseInputStream() { logger.debug("testMessagePackSerializationNotCloseInputStream"); try { File tempFile = File.createTempFile("messagepack-", "-cwiki.us"); MessagePacker packer = MessagePack.newDefaultPacker(new FileOutputStream(tempFile)); packer.packInt(42); packer.packString("Hello"); packer.close(); FileInputStream in = new FileInputStream(tempFile); ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory()); objectMapper.configure(JsonParser.Feature.AUTO_CLOSE_SOURCE, false); System.out.println(objectMapper.readValue(in, Integer.class)); System.out.println(objectMapper.readValue(in, String.class)); in.close(); tempFile.deleteOnExit(); } catch (IOException ex) { logger.error("Serialize Error", ex); } }   https://www.cwiki.us/display/Serialization/MessagePack+Jackson+Dataformat

2019年08月09日 0Comments 818Browse 0Like Read more
Computer Science

MessagePack Java Jackson 在不关闭输出流(output stream)的情况下序列化多变量

com.fasterxml.jackson.databind.ObjectMapper 在默认的情况下在写出输入后将会关闭输出流(output stream)。 如果你希望序列化多值变量在同一个输出流的情况下,你不希望在输出完一个就关闭输出流,你可以设置  JsonGenerator.Feature.AUTO_CLOSE_TARGET 参数为 False。 本测试方法,可以在 https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/test/java/com/insight/demo/serialize/MessagePackSerializer.java 中找到。   /** * Serialization Not Close output stream */ @Test public void testMessagePackSerializationNotCloseOutputStream() { logger.debug("testMessagePackSerializationNotCloseOutputStream"); try { File tempFile = File.createTempFile("messagepack-", "-cwiki.us"); OutputStream out = new FileOutputStream(tempFile); ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory()); objectMapper.configure(JsonGenerator.Feature.AUTO_CLOSE_TARGET, false); objectMapper.writeValue(out, 1); objectMapper.writeValue(out, "two"); objectMapper.writeValue(out, 3.14); out.close(); MessageUnpacker unpacker = MessagePack.newDefaultUnpacker(new FileInputStream(tempFile)); System.out.println(unpacker.unpackInt()); // => 1 System.out.println(unpacker.unpackString()); // => two System.out.println(unpacker.unpackFloat()); // => 3.14 tempFile.deleteOnExit(); } catch (IOException ex) { logger.error("Serialize Error", ex); } }   https://www.cwiki.us/display/Serialization/MessagePack+Jackson+Dataformat

2019年08月09日 0Comments 938Browse 0Like Read more
Computer Science

MessagePack Java Jackson 序列化和反序列化 POJO 为 MessagePack 的数组类型用来与 msgpack-java:0.6 保持兼容性

在 msgpack-java 0.6 或者早期的版本中,POJO 在 MessagePack 中被序列化和反序列化为数组变量。 变量的顺序是基于 Java 类中变量的内部顺序了,这种本来是一种原生的序列化方法,但是会导致一些问题。导致这些问题的原因是在 Java 对象的内部变量的顺序与 Java 实现的顺序不能保证完全的一致。 从另外一个角度来看,使用 jackson-databind 进行的序列化和反序列化方式是基于 POJO 的 Key-Value 对的。因此在 jackson-dataformat-msgpack 与 POJO 处理的方式是相同的。因此,这就导致了与 msgpack-java:0.6 或者早期的版本在对 POJO 进行序列化和反序列化的时候不兼容。 如果你希望在新的版本中也使用与 msgpack-java:0.6 或者早期版本相同的处理 POJO 的方法,你可以使用 JsonArrayFormat。具体使用方法如下所示: ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory()); objectMapper.setAnnotationIntrospector(new JsonArrayFormat()); https://www.cwiki.us/display/Serialization/MessagePack+Jackson+Dataformat

2019年08月09日 0Comments 806Browse 0Like Read more
Computer Science

MessagePack Java Jackson Dataformat - Map 的序列化和反序列化

本测试方法,可以在 https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/test/java/com/insight/demo/serialize/MessagePackSerializer.java 中找到。 我们需要定义测试需要的 MAP,定义 Map 的方法你可以在下面的测试程序中找到。 /** * SerializationMap */ @Test public void testMessagePackSerializationMap() { byte[] bytes = new byte[0]; String uuid_a = UUID.randomUUID().toString(); String uuid_b = UUID.randomUUID().toString(); // Instantiate ObjectMapper for MessagePack ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory()); Map<String, MessageData> map = new HashMap<>(); MessageData messageData = new MessageData(); // Element A in MAP messageData.setUuid(UUID.randomUUID().toString()); messageData.setName("CWIKI.US - A"); map.put(uuid_a, messageData); // Element B in MAP messageData = new MessageData(); messageData.setUuid(UUID.randomUUID().toString()); messageData.setName("CWIKI.US - B"); map.put(uuid_b, messageData); try { // Serialize a Java object to byte array bytes = objectMapper.writeValueAsBytes(map); logger.debug("Length of Bytes: [{}]", bytes.length); // Deserialize the byte array to a MAP Map<String, MessageData> deserialized = objectMapper.readValue(bytes, new TypeReference<Map<String, MessageData>>() { }); logger.debug("Deserialized MAP Count: [{}]", deserialized.size()); logger.debug("MAP index 0: [{}]", deserialized.get(uuid_a).getName()); assertEquals("CWIKI.US - A", deserialized.get(uuid_a).getName()); } catch (JsonProcessingException ex) { logger.error("Serialize Error", ex); } catch (IOException e) { e.printStackTrace(); } } https://www.cwiki.us/display/Serialization/MessagePack+Jackson+Dataformat  

2019年08月09日 0Comments 790Browse 0Like Read more
Computer Science

MessagePack Java Jackson Dataformat - 列表(List)的序列化和反序列化

在本测试代码中,我们定义了一个 POJO 类,名字为 MessageData,你可以访问下面的链接找到有关这个类的定义。 https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/main/java/com/insight/demo/serialize/model/msgpack/MessageData.java 本测试方法,可以在 https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/test/java/com/insight/demo/serialize/MessagePackSerializer.java 中找到。 我们需要先定义一个对象的 List 列表。 /** * SerializationList */ @Test public void testMessagePackSerializationList() { byte[] bytes = new byte[0]; String uuid = UUID.randomUUID().toString(); // Instantiate ObjectMapper for MessagePack ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory()); List<MessageData> objList = MockDataUtils.getMessageDataList(9); try { // Serialize a Java object to byte array bytes = objectMapper.writeValueAsBytes(objList); logger.debug("Length of Bytes: [{}]", bytes.length); // Deserialize the byte array to a Java object // Deserialize the byte array to a List List<MessageData> deserialized = objectMapper.readValue(bytes, new TypeReference<List<MessageData>>() { }); logger.debug("Deserialized List Count: [{}]", deserialized.size()); logger.debug("List index 0: [{}]", deserialized.get(0).name); } catch (JsonProcessingException ex) { logger.error("Serialize Error", ex); } catch (IOException e) { e.printStackTrace(); } } https://www.cwiki.us/display/Serialization/MessagePack+Jackson+Dataformat

2019年08月08日 0Comments 794Browse 0Like Read more
1…161162163164165…237
Archives
  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,367)
    • Confluence (663)
    • Gradle (12)
  • U.S. (514)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1