如何在两台ubuntu系统电脑之间共享资料
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在两台ubuntu系统电脑之间共享资料相关的知识,希望对你有一定的参考价值。
相同同系统(都是inux也可以)的两台电脑可以实现共享,因为IP规则里的NETBios一样,同系统同网络的电脑可以实现共享。如果两机要共享东西,首先要在同一局域网,同一工作组,然后还要设置共享。在同一个局域网,直接点右键把文件夹共享了。然后查看该电脑局域网IP。
在同一局域网的另一台电脑,按win+R 输入 \\IP地址
就可以查看到共享的文件。然后就可以操作了。
但两台电脑要在同一工作组。
可以参考win系统的共享方式:http://jingyan.baidu.com/article/4f7d5712839d4a1a201927e9.html 参考技术A 上传至云盘。进入另一个系统的时候登陆并下载。
如何使用 RequestBody 和 PostMapping 在两台服务器之间共享数据?
【中文标题】如何使用 RequestBody 和 PostMapping 在两台服务器之间共享数据?【英文标题】:How to share data between two server using RequestBody and PostMapping? 【发布时间】:2021-10-14 04:45:30 【问题描述】:我正在尝试使用 ResponseEntity 在 Spring Boot 中将数据从一台服务器 (8081) 共享到另一台服务器 (8082),但我无法构建主体。
这是我写的代码,
服务器 1-
@GetMapping("/redirect")
public ResponseEntity<Void> redirectPgServer(@RequestParam("txnId") String txnId,
@RequestParam("amount") String amount)
// Redirect to server 2
ProductDetails ref=new ProductDetails();
ref.setTxnId("txnId");
ref.setAmount("amount);
HttpHeaders head = new HttpHeaders();
String url = "http://localhost:8082/redirect-server";
System.out.println(url);
head.setLocation(URI.create(url));
return new ResponseEntity<Void>(ref, head, HttpStatus.FOUND);
服务器2-
@GetMapping(value = "/redirect-server")
public String validateData(@RequestBody ProductDetails ref)
//Server 2 receive data
System.out.println(ref.getAmount());
//Does not gives any output since it throws error Request Body Missing, also if I mention
post mapping above it throws error Request method 'GET' not supported]
return "index"; //Using Thymeleaf for displaying html page.
我可以通过操纵 url 和使用 PathVariable 仅使用 header 共享数据,但我想使用 Post Mapping 因为我想隐藏参数在浏览器中对用户可见的 URL。我还尝试使用 RestTemplate 将我带回服务器 1 并引发错误 - Spring rest 模板无法从 text/html utf8 转换。
【问题讨论】:
这个问题不完整。这里没有通讯。只有一个定义的端点,另一个似乎什么都不做的端点。缺少的部分很可能是您遇到问题的地方。 您很可能需要将ResponseEntity<Void>
更改为ResponseEntity<ProductDetails>
【参考方案1】:
我的建议是用@PostMapping
注释这两种方法,同时删除@RequestBody
注释。在第一个服务器中,您应该使用 307 HTTP 代码(这是临时重定向)进行响应,基本上这会告诉浏览器,重试对另一个端点的调用(在 Location 标头中给出)。
类似这样的:
服务器 1
@PostMapping(value = "/redirect", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public ResponseEntity redirect(Product product)
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setLocation(URI.create("http://localhost:8082/product"));
return new ResponseEntity(httpHeaders, HttpStatus.TEMPORARY_REDIRECT);
服务器 2
@PostMapping(value = "/product", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public void redirect(Product prod)
System.out.println(prod.getId());
//do your stuff
HTML 页面
<html>
<body>
<form action="http://localhost:8081/redirect" method="POST">
<input name="id">
<input name="name">
<button type="submit">Send</button>
</form>
</body>
</html>
如果您不使用表单,而是使用某种异步调用,您必须指定 url 表单编码。否则你会得到一个 405。
我已经用邮递员和一个 html 页面尝试过代码,它确实可以正常工作。 (用 Firefox 试过)
如果有不清楚的地方不要问。
我发现了一个类似的问题,我从中获得了灵感 A good way to redirect with a POST request?
【讨论】:
以上是关于如何在两台ubuntu系统电脑之间共享资料的主要内容,如果未能解决你的问题,请参考以下文章