Commit c04edc45 authored by jinliang's avatar jinliang

add vps feature

parent 780ee419
...@@ -286,8 +286,9 @@ public class IpResourceServiceImpl implements IpResourceService { ...@@ -286,8 +286,9 @@ public class IpResourceServiceImpl implements IpResourceService {
case "isp": case "isp":
ipResource.setVendorCn("住宅"); ipResource.setVendorCn("住宅");
break; break;
case "aws": //阿里云windows设备,支持代理IP和远程桌面
ipResource.setVendorCn("亚马逊云"); case "remote":
ipResource.setVendorCn("远程设备");
break; break;
} }
ipResource.setStatus(6); ipResource.setStatus(6);
......
...@@ -31,6 +31,7 @@ import com.edgec.browserbackend.browser.repository.IpHistoryRepository; ...@@ -31,6 +31,7 @@ import com.edgec.browserbackend.browser.repository.IpHistoryRepository;
import com.edgec.browserbackend.browser.repository.IpResourceRepository; import com.edgec.browserbackend.browser.repository.IpResourceRepository;
import com.edgec.browserbackend.browser.service.IpAndShopService; import com.edgec.browserbackend.browser.service.IpAndShopService;
import com.edgec.browserbackend.common.client.AliEcsClient; import com.edgec.browserbackend.common.client.AliEcsClient;
import com.edgec.browserbackend.common.client.AliEcsRemoteClient;
import com.edgec.browserbackend.common.client.TenCentEcsClient; import com.edgec.browserbackend.common.client.TenCentEcsClient;
import com.edgec.browserbackend.common.client.ipvClient.IpvClient; import com.edgec.browserbackend.common.client.ipvClient.IpvClient;
import com.edgec.browserbackend.common.client.ipvClient.dto.AppInstanceOpenReq; import com.edgec.browserbackend.common.client.ipvClient.dto.AppInstanceOpenReq;
...@@ -290,7 +291,44 @@ public class BrowserTask { ...@@ -290,7 +291,44 @@ public class BrowserTask {
cloudPlatformOrderRepository.save(cloudPlatformOrder); cloudPlatformOrderRepository.save(cloudPlatformOrder);
result = true; result = true;
} }
} } else if (ipResource.getVendorCn().equals("远程设备")) {
//获取阿里云服务器region映射
String aliRegion = RegionMappingEnum.getAliRegion(
ipResource.getRegion());
if (StringUtils.isEmpty(aliRegion)) {
log.error(
"buyIpNewTasks-购买VPS error:查询不到阿里云映射api-region:{}",
ipResource.getRegion());
return;
}
CloudPlatformConfig config = cloudPlatformConfigRepository.findByPlatformAndRegionId(
"ali",
aliRegion);
if (Objects.isNull(config)) {
log.error(
"buyIpNewTasks-购买VPS error:查询不到阿里云模板配置-region:{}",
aliRegion);
return;
}
RunInstancesResponse response = AliEcsRemoteClient.runInstances(
ipResource.getOwner(), ipResource.getUsername(),
ipResource.getPassword(), config);
if (null == response || !response.getStatusCode().equals(200)) {
log.error("{}, fail to buy vps : {}", logs, JSON.toJSON(response));
} else if (Objects.nonNull(response.getBody())) {
String instanceId = response.getBody().getInstanceIdSets()
.getInstanceIdSet().get(0);
cloudPlatformOrder.setPlatformOrderId(instanceId);
cloudPlatformOrder.setPlatformType("remote");
cloudPlatformOrder.setRegionId(aliRegion);
cloudPlatformOrder.setRetryCount(0);
ipResource.setStatus(3);
ipResourceRepository.save(ipResource);
cloudPlatformOrderRepository.save(cloudPlatformOrder);
result = true;
}
}
/** /**
* 购买失败处理 * 购买失败处理
...@@ -671,6 +709,105 @@ public class BrowserTask { ...@@ -671,6 +709,105 @@ public class BrowserTask {
} }
ipResourceRepository.deleteById(ipResource.getId()); ipResourceRepository.deleteById(ipResource.getId());
} }
} else if("remote".equals(cloudPlatformOrder.getPlatformType())) {
DescribeInstancesResponse response = AliEcsRemoteClient.getDescribeInstances(
ipResource.getOwner(), cloudPlatformOrder.getPlatformOrderId(),
cloudPlatformOrder.getRegionId());
if (!response.getStatusCode().equals(200)) {
log.error(", fail to query ip : {}",
JSON.toJSON(response.getBody()));
}
if (Objects.nonNull(response.getBody())) {
//判断是否重复购买
Instance instance = response.getBody().getInstances()
.getInstance().get(0);
if (instance.getInstanceChargeType().equals("PrePaid")) {
//包年包月 更新ip状态
ipResource.setAddr(
instance.getPublicIpAddress().getIpAddress().get(0));
ipResource.setStatus(0);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
"yyyy-MM-dd'T'HH:mmX");
Instant instant = Instant.from(
formatter.parse(instance.getExpiredTime()));
ipResource.setValidTime(instant.toEpochMilli());
if (StringUtils.isNotBlank(ipResource.getRegion())
&& region.contains(ipResource.getRegion())) {
ipResource.setProxyUsername(ipResource.getAddr());
ipResource.setProxyPassword(genRandom(3, 12));
ipResource.setSpecialLine(true);
}
ipResourceRepository.save(ipResource);
IpHistory ipHistory = new IpHistory();
ipHistory.setIpNo(ipResource.getAddr());
ipHistory.setPlatformType(
cloudPlatformOrder.getPlatformType());
ipHistory.setPurchasedTime(Instant.now().toEpochMilli());
ipHistoryRepository.save(ipHistory);
return;
}
//查询是否为重复ip
String ipNo = instance.getPublicIpAddress().getIpAddress()
.get(0);
LocalDateTime localDateTime = LocalDateTime.now()
.minus(3, ChronoUnit.MONTHS);
Instant instant = localDateTime.atZone(ZoneId.systemDefault())
.toInstant();
List<IpHistory> ipHistoryList = ipHistoryRepository.findByIpNoAndPurchasedTimeAfter(
ipNo,
instant.toEpochMilli());
if (CollectionUtils.isNotEmpty(ipHistoryList) &&
(Objects.isNull(cloudPlatformOrder.getRetryCount()) ||
cloudPlatformOrder.getRetryCount() < 5)) {
//重新分配ip(删除旧的 购买新的)
AliEcsRemoteClient.deleteInstance(
ipResource.getOwner(),
cloudPlatformOrder.getPlatformOrderId(),
cloudPlatformOrder.getRegionId());
CloudPlatformConfig config = cloudPlatformConfigRepository.findByPlatformAndRegionId(
"ali",
cloudPlatformOrder.getRegionId());
RunInstancesResponse response1 = AliEcsRemoteClient.runInstances(
ipResource.getOwner(), ipResource.getUsername(),
ipResource.getPassword(), config);
if (null == response1 || !response1.getStatusCode()
.equals(200)) {
log.error("queryIpNewTasks, fail to buy vps again : {}",
JSON.toJSON(response));
} else if (Objects.nonNull(response1.getBody())) {
int oldRetryCount =
Objects.isNull(cloudPlatformOrder.getRetryCount())
? 0 : cloudPlatformOrder.getRetryCount();
cloudPlatformOrder.setRetryCount(oldRetryCount + 1);
cloudPlatformOrderRepository.save(cloudPlatformOrder);
String instanceId = response1.getBody()
.getInstanceIdSets().getInstanceIdSet().get(0);
cloudPlatformOrder.setPlatformOrderId(instanceId);
ipResource.setStatus(3);
ipResourceRepository.save(ipResource);
cloudPlatformOrderRepository.save(cloudPlatformOrder);
}
} else {
//将ip改为包年包月
String periodUnit =
ipResource.getUnit().equals("week") ? "Week" : "Month";
ModifyInstanceChargeTypeResponse modifyInstanceChargeTypeResponse =
AliEcsRemoteClient.modifyInstanceChargeType(
ipResource.getOwner(), periodUnit,
ipResource.getPeriod(),
cloudPlatformOrder.getRegionId(),
cloudPlatformOrder.getPlatformOrderId());
if (null == modifyInstanceChargeTypeResponse
|| !modifyInstanceChargeTypeResponse.getStatusCode()
.equals(200)) {
//TODO 目前先抛错误 待确认如何解决
log.error("queryIpNewTasks, fail to buy vps again : {}",
JSON.toJSON(response));
}
}
}
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
...@@ -811,6 +948,32 @@ public class BrowserTask { ...@@ -811,6 +948,32 @@ public class BrowserTask {
} }
} }
} }
} else if ("remote".equals(cloudPlatformOrder.getPlatformType())) {
DescribeInstancesResponse response = AliEcsRemoteClient.getDescribeInstances(
ipResource.getOwner(), cloudPlatformOrder.getPlatformOrderId(),
cloudPlatformOrder.getRegionId());
if (!response.getStatusCode().equals(200)) {
log.error(", fail to query ip : {}",
JSON.toJSON(response.getBody()));
}
if (Objects.nonNull(response.getBody())) {
//判断是否重复购买
Instance instance = response.getBody().getInstances()
.getInstance().get(0);
if (instance.getInstanceChargeType().equals("PrePaid")) {
//包年包夜 更新ip状态
ipResource.setStatus(0);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
"yyyy-MM-dd'T'HH:mmX");
Instant instant = Instant.from(
formatter.parse(instance.getExpiredTime()));
long epochMilli = instant.toEpochMilli();
if(epochMilli > ipResource.getValidTime()) {
ipResource.setValidTime(epochMilli);
ipResourceRepository.save(ipResource);
}
}
}
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
......
package com.edgec.browserbackend.common.client;
import com.alibaba.fastjson.JSON;
import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.sdk.service.ecs20140526.AsyncClient;
import com.aliyun.sdk.service.ecs20140526.models.DeleteInstanceRequest;
import com.aliyun.sdk.service.ecs20140526.models.DeleteInstanceResponse;
import com.aliyun.sdk.service.ecs20140526.models.DescribeInstancesRequest;
import com.aliyun.sdk.service.ecs20140526.models.DescribeInstancesResponse;
import com.aliyun.sdk.service.ecs20140526.models.ModifyInstanceChargeTypeRequest;
import com.aliyun.sdk.service.ecs20140526.models.ModifyInstanceChargeTypeResponse;
import com.aliyun.sdk.service.ecs20140526.models.RenewInstanceRequest;
import com.aliyun.sdk.service.ecs20140526.models.RenewInstanceResponse;
import com.aliyun.sdk.service.ecs20140526.models.RunInstancesRequest;
import com.aliyun.sdk.service.ecs20140526.models.RunInstancesResponse;
import com.edgec.browserbackend.browser.domain.CloudPlatformConfig;
import com.edgec.browserbackend.common.utils.Aes;
import darabonba.core.client.ClientOverrideConfiguration;
import java.util.concurrent.CompletableFuture;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @Description 阿里云ECS相关api \
* url:https://next.api.aliyun.com/document/Ecs/2014-05-26/overview
* @Data 2024年7月28日
**/
@Service
@RequiredArgsConstructor
@Slf4j
public class AliEcsRemoteClient {
//access_key_id
private static String getAccessKeyId() {
return "LTAI5tEdz1DY4A4oYUawUuNH";
}
//access_key_secret
private static String getAccessKeySecret() {
return "8KWmYgO0QIicZpyulhEwUhZqStrTwe";
}
//launch_template_id
//脚本userData
private static String getUserData() {
return "#!/bin/sh\n"
+ "echo \"users %s:CL:%s\n"
+ "allow %s *\n"
+ "auth strong\n"
+ "proxy -p8880\n"
+ "proxy -p8881 -a\n"
+ "socks -p8882\n"
+ "flush\" | tee /etc/3proxy.cfg\n"
+ "systemctl restart 3proxy";
}
/*
* @Description //创建链接
* @Date 2024/7/25 10:32
**/
private static AsyncClient createClient(String regionId) {
StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
.accessKeyId(getAccessKeyId())
.accessKeySecret(getAccessKeySecret())
.build());
String endpoint = String.format("ecs.%s.aliyuncs.com", regionId);
return AsyncClient.builder()
.region(regionId)
.credentialsProvider(provider)
.overrideConfiguration(
ClientOverrideConfiguration.create()
.setEndpointOverride(endpoint)
)
.build();
}
/**
* 创建并运行实例
*/
public static RunInstancesResponse runInstances(String owner,String username, String password, CloudPlatformConfig config) {
AsyncClient client = createClient(config.getRegionId());
RunInstancesResponse runInstancesResponse = null;
String userData = String.format(getUserData(), username, password, username);
try {
RunInstancesRequest runInstancesRequest = RunInstancesRequest.builder()
.regionId(config.getRegionId())
.launchTemplateId(config.getTemplateId())
.userData(Aes.base64Encode(userData.getBytes()))
.password(password)
.build();
log.info("调用aliEcsRemote创建并运行实例,入参:owner:{},regionId:{}", owner, config.getRegionId());
CompletableFuture<RunInstancesResponse> response = client.runInstances(
runInstancesRequest);
runInstancesResponse = response.get();
log.info("调用aliEcsRemote创建并运行实例,响应参数:owner:{},response:{}", owner,
JSON.toJSON(runInstancesResponse));
} catch (Exception e) {
log.error("fail to aliEcsRemote runInstances {}", e.getMessage());
} finally {
client.close();
}
return runInstancesResponse;
}
/**
* 续费实例
*/
public static RenewInstanceResponse renewInstance(String owner, String regionId, String instanceId,
Integer period, String periodUnit){
AsyncClient client = createClient(regionId);
RenewInstanceResponse renewInstanceResponse = null;
try {
RenewInstanceRequest renewInstanceRequest = RenewInstanceRequest.builder()
.instanceId(instanceId)
.period(period)
.periodUnit(periodUnit)
.build();
log.info("调用aliEcsRemote续费实例,入参:owner:{},regionId:{},instanceId:{},period:{},periodUnit:{}", owner, regionId, instanceId, period, periodUnit);
CompletableFuture<RenewInstanceResponse> response = client.renewInstance(
renewInstanceRequest);
renewInstanceResponse = response.get();
log.info("调用aliEcsRemote续费实例,响应参数:owner:{},response:{}", owner,
JSON.toJSON(renewInstanceResponse));
} catch (Exception e) {
log.error("fail to aliEcsRemote runInstances {}", e.getMessage());
} finally {
client.close();
}
return renewInstanceResponse;
}
/**
* 查询单个实例
*/
public static DescribeInstancesResponse getDescribeInstances(String owner, String instanceId,
String regionId) {
AsyncClient client = createClient(regionId);
DescribeInstancesResponse resp = null;
try {
String instanceIds = String.format("[\"%s\"]", instanceId);
DescribeInstancesRequest describeInstancesRequest = DescribeInstancesRequest.builder()
.regionId(regionId)
.instanceIds(instanceIds)
.build();
log.info("调用aliEcsRemote查询单个实例,入参:owner:{},regionId:{},instanceId:{}",
owner, regionId, instanceId);
CompletableFuture<DescribeInstancesResponse> response = client.describeInstances(
describeInstancesRequest);
resp = response.get();
log.info("调用aliEcsRemote查询单个实例,响应参数:owner:{},response:{}", owner,
JSON.toJSON(resp));
} catch (Exception e) {
log.error("fail to aliEcsRemote getDescribeInstances {}", e.getMessage());
} finally {
client.close();
}
return resp;
}
/**
* 删除ECS
*/
public static DeleteInstanceResponse deleteInstance(String owner, String instanceId, String regionId) {
AsyncClient client = createClient(regionId);
DeleteInstanceResponse resp = null;
try {
DeleteInstanceRequest deleteInstanceRequest = DeleteInstanceRequest.builder()
.instanceId(instanceId)
.force(true)
.build();
log.info("调用aliEcsRemote删除ECS实例,入参:owner:{},instanceId:{},regionId{}",
owner, instanceId, regionId);
CompletableFuture<DeleteInstanceResponse> response = client.deleteInstance(
deleteInstanceRequest);
resp = response.get();
log.info("调用aliEcsRemote删除ECS实例,响应参数:owner:{},response:{}", owner,
JSON.toJSON(resp));
} catch (Exception e) {
log.error("fail to aliEcsRemote deleteInstance {}", e.getMessage());
} finally {
client.close();
}
return resp;
}
/**
* 将按量改为包年包月
*/
public static ModifyInstanceChargeTypeResponse modifyInstanceChargeType(String owner,
String periodUnit, int period, String regionId, String instanceId) {
AsyncClient client = createClient(regionId);
ModifyInstanceChargeTypeResponse modifyInstanceChargeTypeResponse = null;
try {
String instanceIds = String.format("[\"%s\"]", instanceId);
ModifyInstanceChargeTypeRequest modifyInstanceChargeTypeRequest =
ModifyInstanceChargeTypeRequest.builder()
.instanceIds(instanceIds)
.regionId(regionId)
.instanceChargeType("PrePaid")
.periodUnit(periodUnit)
.period(period)
.build();
log.info(
"调用aliEcsRemote将实例由量改为包年包月,入参:owner:{},regionId:{},periodUnit:{},period:{}, instanceId{}",
owner, regionId, periodUnit, period, instanceId);
CompletableFuture<ModifyInstanceChargeTypeResponse> response = client.modifyInstanceChargeType(
modifyInstanceChargeTypeRequest);
modifyInstanceChargeTypeResponse = response.get();
log.info("调用aliEcsRemote将实例由量改为包年包月,响应参数:owner:{},response:{}", owner,
JSON.toJSON(modifyInstanceChargeTypeResponse));
} catch (Exception e) {
log.error("fail to aliEcsRemote modifyInstanceChargeType {}", e.getMessage());
} finally {
client.close();
}
return modifyInstanceChargeTypeResponse;
}
}
{ {
"ipRegion": { "ipRegion": {
"中国大陆": [ "中国大陆": [
"中国随机", "中国随机",
"杭州", "杭州",
"上海", "上海",
"深圳", "深圳",
"广州", "广州",
"北京", "北京",
"呼和浩特", "呼和浩特",
"乌兰察布", "乌兰察布",
"成都", "成都",
"河源" "河源",
], "南京"
"港澳台": [ ],
"中国香港" "港澳台": [
], "中国香港",
"美国": [ "中国台湾"
"美国随机", ],
"硅谷", "美国": [
"弗吉尼亚" "美国随机",
], "硅谷",
"亚太": [ "弗吉尼亚",
"新加坡", "拉斯维加斯",
"马来西亚-吉隆坡", "纽约",
"泰国-曼谷", "洛杉矶",
"印度尼西亚-雅加达", "迈阿密",
"菲律宾-马尼拉", "华盛顿"
"日本-东京", ],
"韩国-首尔" "亚太": [
], "新加坡",
"欧洲": [ "马来西亚-吉隆坡",
"英国-伦敦", "泰国-曼谷",
"德国-法兰克福" "印度尼西亚-雅加达",
], "菲律宾-马尼拉",
"本地": [ "日本-东京",
"本地" "韩国-首尔",
] "印度-孟买",
"越南-胡志明"
],
"欧洲": [
"英国-伦敦",
"德国-法兰克福"
],
"南美": [
"巴西-圣保罗"
],
"北美": [
"加拿大"
],
"本地": [
"本地"
]
}, },
"ipPlatForm": { "ipPlatForm": {
"中国随机": [ "中国随机": [
"阿里云-28-28" "阿里云-28-28"
], ],
"杭州": [ "杭州": [
"阿里云-28-28" "阿里云-28-28"
], ],
"上海": [ "上海": [
"阿里云-28-28" "阿里云-28-28",
], "腾讯云-28-28"
"深圳": [ ],
"阿里云-28-28" "深圳": [
], "阿里云-28-28"
"广州": [ ],
"阿里云-28-28" "广州": [
], "阿里云-28-28",
"北京": [ "腾讯云-28-28"
"阿里云-28-28" ],
], "北京": [
"呼和浩特": [ "阿里云-28-28",
"阿里云-28-28" "腾讯云-28-28"
], ],
"乌兰察布": [ "呼和浩特": [
"阿里云-28-28" "阿里云-28-28"
], ],
"成都": [ "乌兰察布": [
"阿里云-28-28" "阿里云-28-28"
], ],
"河源": [ "成都": [
"阿里云-28-28" "阿里云-28-28"
], ],
"中国香港": [ "河源": [
"阿里云-28-28" "阿里云-28-28"
], ],
"美国随机": [ "南京": [
"阿里云-28-28" "腾讯云-28-28"
], ],
"硅谷": [ "中国香港": [
"阿里云-28-28" "阿里云-28-28",
], "住宅-28-28",
"弗吉尼亚": [ "远程设备-68-68"
"阿里云-28-28" ],
], "中国台湾": [
"英国-伦敦": [ "住宅-28-28"
"阿里云-28-28" ],
], "美国随机": [
"德国-法兰克福": [ "阿里云-28-28",
"阿里云-28-28" "远程设备-68-68"
], ],
"新加坡": [ "硅谷": [
"阿里云-28-28" "阿里云-28-28",
], "腾讯云-28-28"
"马来西亚-吉隆坡": [ ],
"阿里云-28-28" "弗吉尼亚": [
], "阿里云-28-28",
"泰国-曼谷": [ "住宅-28-28"
"阿里云-28-28" ],
], "拉斯维加斯": [
"印度尼西亚-雅加达": [ "住宅-28-28"
"阿里云-28-28" ],
], "纽约": [
"菲律宾-马尼拉": [ "住宅-28-28"
"阿里云-28-28" ],
], "洛杉矶": [
"日本-东京": [ "住宅-28-28"
"阿里云-28-28" ],
], "迈阿密": [
"韩国-首尔": [ "住宅-28-28"
"阿里云-28-28" ],
], "华盛顿": [
"自有": [ "住宅-28-28"
"自有-2-2" ],
], "加拿大": [
"自有专线": [ "住宅-28-28"
"自有专线-5-5" ],
], "巴西-圣保罗": [
"本地": [ "腾讯云-28-28"
"本地-0-0" ],
] "英国-伦敦": [
}, "阿里云-28-28",
"supportedPlatForm": { "住宅-28-28"
"中国随机": { ],
"阿里云": [ "德国-法兰克福": [
"亚马逊-1", "阿里云-28-28",
"亚马逊日本-0", "腾讯云-28-28"
"ebay-1", ],
"全球速卖通-1", "新加坡": [
"Wish-1", "阿里云-28-28",
"Shopee-1", "腾讯云-28-28",
"Lazada-0", "住宅-28-28"
"CDiscount-1", ],
"Joom-1", "马来西亚-吉隆坡": [
"Vova-1", "阿里云-28-28",
"乐天-0", "住宅-28-28"
"Ozon-1", ],
"FactoryMarket-1", "泰国-曼谷": [
"PayPal-0", "阿里云-28-28",
"PayPal(中国)-1", "住宅-28-28"
"其他平台-0" ],
], "印度尼西亚-雅加达": [
"腾讯云": [ "阿里云-28-28",
"亚马逊-1", "腾讯云-28-28",
"亚马逊日本-0", "住宅-28-28"
"ebay-1", ],
"全球速卖通-1", "菲律宾-马尼拉": [
"Wish-1", "阿里云-28-28",
"Shopee-1", "住宅-28-28"
"Lazada-0", ],
"CDiscount-1", "日本-东京": [
"Joom-1", "阿里云-28-28",
"Vova-1", "腾讯云-28-28"
"乐天-0", ],
"Ozon-1", "韩国-首尔": [
"FactoryMarket-1", "阿里云-28-28",
"PayPal-0", "腾讯云-28-28",
"PayPal(中国)-1", "住宅-28-28"
"其他平台-0" ],
] "印度-孟买": [
}, "腾讯云-28-28"
"杭州": { ],
"阿里云": [ "越南-胡志明": [
"亚马逊-1", "住宅-28-28"
"亚马逊日本-0", ],
"ebay-1", "自有": [
"全球速卖通-1", "自有-2-2"
"Wish-1", ],
"Shopee-1", "自有专线": [
"Lazada-0", "自有专线-5-5"
"CDiscount-1", ],
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"上海": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"深圳": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"广州": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
],
"腾讯云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"北京": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"青岛": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"呼和浩特": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"乌兰察布": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"成都": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"河源": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"中国香港": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"亚马逊云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"美国随机": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"亚马逊云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"硅谷": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"弗吉尼亚": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"亚马逊云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"俄勒冈": {
"亚马逊云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"俄亥俄": {
"亚马逊云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"英国-伦敦": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"亚马逊云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"德国-法兰克福": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"亚马逊云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"俄罗斯-莫斯科": {
"腾讯云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"法国-巴黎": {
"亚马逊云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"日本-东京": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"亚马逊云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"日本乐天-1",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-1"
]
},
"新加坡": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"亚马逊云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"日本乐天-1",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-1"
]
},
"澳大利亚-悉尼": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"亚马逊云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-1"
]
},
"马来西亚-吉隆坡": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"菲律宾-马尼拉": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"泰国-曼谷": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"韩国-首尔": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"印度尼西亚-雅加达": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"孟买": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"加拿大": {
"亚马逊云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"巴西": {
"亚马逊云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"迪拜": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"本地": {
"本地": [ "本地": [
"亚马逊-1", "本地-0-0"
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-1",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-1",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-1"
] ]
} },
"supportedPlatForm": {
"中国随机": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
],
"腾讯云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"杭州": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"上海": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
],
"腾讯云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"深圳": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"广州": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
],
"腾讯云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"北京": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
],
"腾讯云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"青岛": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"呼和浩特": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"乌兰察布": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"成都": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"河源": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"南京": {
"腾讯云": [
"亚马逊-1",
"亚马逊日本-0",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
]
},
"中国香港": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"远程设备": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-0",
"PayPal(中国)-1",
"其他平台-0"
],
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"中国台湾": {
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"美国随机": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"远程设备": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"硅谷": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"腾讯云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"弗吉尼亚": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"拉斯维加斯": {
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"纽约": {
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"洛杉矶": {
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"迈阿密": {
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"华盛顿": {
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"英国-伦敦": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"德国-法兰克福": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"腾讯云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"日本-东京": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"腾讯云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"日本乐天-1",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-1"
]
},
"新加坡": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"腾讯云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"日本乐天-1",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-1"
],
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"澳大利亚-悉尼": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"马来西亚-吉隆坡": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"菲律宾-马尼拉": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"泰国-曼谷": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"韩国-首尔": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"腾讯云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"印度尼西亚-雅加达": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"腾讯云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
],
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"越南-胡志明": {
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"印度-孟买": {
"腾讯云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"加拿大": {
"住宅": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"巴西-圣保罗": {
"腾讯云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"迪拜": {
"阿里云": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-0",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-0",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-0"
]
},
"本地": {
"本地": [
"亚马逊-1",
"亚马逊日本-1",
"ebay-1",
"全球速卖通-1",
"Wish-1",
"Shopee-1",
"Lazada-1",
"CDiscount-1",
"Joom-1",
"Vova-1",
"乐天-1",
"Ozon-1",
"FactoryMarket-1",
"PayPal-1",
"其他平台-1"
]
}
}, },
"ipDurations": [ "ipDurations": [
"1周", "1周",
"1个月", "1个月",
"3个月", "3个月",
"6个月", "6个月",
"12个月" "12个月"
] ]
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment